- Function对象的length属性返回的时函数的形参个数,Arguments对象的length属性返回的是函数的实参个数。如果函数不是匿名函数,arguments.callee等价于函数名。
- 关于call与apply
function f () {
this.a = ‘a‘;
this.b = function () {
alert(‘b‘)
}
}
function e () {
f.call(this);
alert(a);
}
e() // ‘a‘
上面实例说明,如果在函数体内使用call和apply方法动态调用外部函数,并将call,apply发放的第一个参数设置为this,那么当前函数e将继承f的所有成员,使用call,apply方法能够复制调用函数的内部变量给当前函数体,更改了函数f的内部this指向函数e,这样e就可以引用f内部成员。
- 函数调用模式
- 方法调用模式。当一个函数被保存为对象的一个属性时,成为一个方法。当一个方法被调用时,this被绑定到当前对象。
- 函数调用模式。当一个函数并非一个对象的属性时,它将被当做一个函数来调用。this绑定到全局对象。
- 构造器调用模式。如果在一个函数前面加上new运算符进行调用,那么将创建一个隐藏链接到该函数的prototype原型对象的新实例对象,同时this将会被绑定到这个新实例对象上。(构造器函数一般大写字母开头)
- apply调用模式。使用这个方法可以调用函数并且修改函数体内this值。
时间: 2024-10-13 00:48:13