"这个"变量是指在javascript中

时间:2016-05-23 13:07:19

标签: javascript

我知道width: 100%; height: 100%变量指的是全局对象(浏览器中的窗口)或包含它的对象(如果使用的话)在对象的方法中),除非它被不同地指定(例如使用绑定方法)。

现在,我有以下示例:

this

输出是:

"这" inside方法:[object Object]

对象{param:" Luciano"}

"这"内部方法:[对象窗口]

窗口{...}

我能理解为什么在//define an object var obj = { param: 'Luciano', bar: function () { console.log('"this" inside method: ' + this); return this; } }; var a = obj.bar(); console.log(a); // var b = obj.bar; console.log(b()); 的情况下,此变量指向var a = obj.bar()对象。有人可以向我解释(执行上下文范围链 )为什么obj {{1}变量等于var b = obj.bar对象?我希望也等于this

1 个答案:

答案 0 :(得分:0)

您使用var b = obj.bar; b();实际执行的操作是“采用bar的方法obj并直接调用它,不使用this(或使用window作为{{{ 1}})“vs this”表示“调用方法obj.bar() barobj”。

混淆来自于this不仅仅是简单的“给我一个键的值”这一事实,如果与.符号一起使用,它也会“绑定”一个上下文。否则就不会。