上下文究竟代表什么?

时间:2014-01-08 13:14:23

标签: javascript

在下面的代码中,有人可以告诉我isSharpglobal context中的情况。我跟随约翰的高级JS。

http://ejohn.org/apps/learn/#24

function katana(){
  this.isSharp = true;
}
katana();
alert(isSharp);
assert( isSharp === true, "A global object now exists with that name and value." );

var shuriken = {
  toss: function(){
    this.isSharp = true;
  }
};
shuriken.toss();
assert( shuriken.isSharp === true, "When it's an object property, the value is set within the object." );

1 个答案:

答案 0 :(得分:3)

在未在对象上执行的代码中 - this引用全局上下文。

这是this如何在某种语言中运作的一部分。

注意 - 如果你使用严格模式,你应该这样做 - 这会引发一个TypeError。


参考:"entering function code"

  

否则如果thisArg为null或未定义,则将ThisBinding设置为全局对象。