JavaScript原型范围问题

时间:2015-09-25 12:41:48

标签: javascript scope prototype

我是JavaScript的新手,所以如果问题太愚蠢,我会道歉。我不明白this关键字在下面的示例中的行为。

在第一种情况下,this引用window对象:

Element.prototype.x = this;
some_element.x; // Returns window object.

第二,它指的是DOM元素:

Element.prototype.x = function(){return this;};
some_element.x(); // Returns element itself.

为什么呢?这些例子有何不同?

1 个答案:

答案 0 :(得分:0)

在第一种情况下,这是指窗口对象:

Element.prototype.x = this;(此处范围指向窗口“js中的全局范围”)

第二,它指的是DOM元素:

Element.prototype.x = function(){return this;};(但在此处您正在为Object“Element”定义一个函数,因此该关键字的范围指向“Element”对象。)