JavaScript四种调用模式和this
2013-12-20 21:17
495 查看
JavaScript四种调用模式和this
JavaScript调用时除了声明时定义的形参外,每个函数接受两个附加参数:this 和arguments,this在面向对象编程中非常重要,它取决于调用模式。JavaScript有四种调用模式,方法调用模式,函数调用模式,构造器调用模式和apply调用模式。这些模式在初始化关键参数this上存在差异。
方法调用模式:当一个函数被保存为对象的一个属性时,我们称它为一个方法,当一个方法被调用时,this被绑定到该对象上。如果调用表达式包含一个属性取表达式(即一个.点表达式或[script]下标表达式),那么它被当做一个方法调用。
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 | var myObject = { value: 0; increment: function(inc){ this.value += typeof inc === 'number' ? inc : 1; } }; myObject.increment(); document.writeln(myObject.value);//1 myObject.increment(2); document.writeln(myObject.value);//2 |
函数调用模式:当一个函数并非一个对象的属性时,那么它被当做一个函数来调用 var sum = add(3, 4);//sum值为7
当函数以此模式调用时,this被绑定到全局对象。
构造器调用模式:JavaScript是一门基于原型继承的语言。这意味着可以直接从其他对象继承属性。该语言是无类别的。
如果在函数前面带上new来调用,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将会被绑定到那个新对象上。
Apply调用模式:因为JavaScript是一门函数式的面向对象编程语言,所以函数可以拥有方法。
apply方法让哦我们构建一个参数数组并用其去调用函数。它也允许我们选择this的值。
apply方法接受两个参数,第一个将被绑定给this的值,第二个就是一个参数数组。
相关文章推荐
- Json
- 阿里巴巴 fsatjson
- HTML5画布形状与KineticJS分层
- 使用KineticJS HTML5画布修改曲线锚点
- javascript内置顶层函数
- XML、JSON的生成和解析
- 取消JSpinner的键盘编辑能力
- js中return 、document.location.href 和 top.location.href (frame的位置)
- c# json 处理
- js正则实现从一段复杂html代码字符串中匹配并处理特定信息
- 当用js动态的改变一个输入框中的值后,并不能触发它的onchange事件
- 调试js 试用火狐的firebug
- 初学javascript《一》break和continue的标签问题
- 不一样的Javascript(12)——prototype
- javascript脚本何时被执行
- js 回车登录兼容IE7火狐
- Javascript跨域访问解决方案
- 通过表名获得列名信息,返回json串
- js下调用动态显示当前时间(兼容ie和火狐)
- NuGet 安装 SimpleJson