JavaScript:什么是全局对象,“this”指的是什么?

时间:2010-09-21 08:18:32

标签: javascript

我已经了解到在函数调用中,this将引用全局对象。在下面的函数中,哪个是全局对象?

是函数还是this引用的单个默认全局对象?除此之外,这段代码实际上做了什么?我对method占位符特别感到困惑。是否必须使用Function.prototype中预先存在的方法替换它?

this.prototype[name] = func;行中,它引用的是哪个属性,方法是?还是Function.prototype?

Function.prototype.method = function (name, func) {
    this.prototype[name] = func;
    return this;
};

1 个答案:

答案 0 :(得分:2)

this关键字引用当前对象,如果函数的范围是全局命名空间,则当前对象是全局对象,即环境是浏览器时的window对象

当您向Function类添加方法时,this关键字将引用您调用method方法的函数,因此它将返回函数本身这样就可以锁定电话。

这会将函数F声明为构造函数,创建类型为F的对象,将函数x作为方法添加到F并命名为{ {1}},然后使用对象xx来调用真正为f的{​​{1}}:

xx

所以,这个:

x

与:

相同
function F() {}
function x() { alert(1); }

var f = new (F);
F.method('xx', x);
f.xx();