我想了解我在哪里犯错!我有这样的小javascript对象:
o = {
fun: function (x) {
return x();
},
fun2: function () {
return this;
}
};
现在,我在chrome调试器中触发以下方法:
o.fun(o.fun2);
这将返回一个窗口对象。我期望看到o对象。我不知道这一点。有人可以向我解释吗?我真的很想知道Javascript在幕后发生了什么。
的值this
取决于调用函数的方式,而没有其他决定。您的函数由初始化表达式定义为该对象文字的一部分这一事实绝对没有区别。
您可以this
像这样确保“ fun”传播的值:
fun: function (x) {
return x.call(this);
},
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句