【发布时间】:2013-02-17 16:57:39
【问题描述】:
这里是代码
obj = {
a: 'some value';
m: function(){
alert(this.a);
}
}
obj.m();
结果是'some value'。
听说这个关键字指的是函数的拥有者obj。
现在的问题是上面代码中函数的所有者是obj 那么为什么当函数有所有者时使用这个关键字很重要,上面的代码应该
以下列方式工作
obj = {
a: 'some value';
m: function(){
alert(a);
}
}
obj.m();
我知道哪个不起作用,但为什么?
【问题讨论】:
-
函数没有真正的所有者。
-
函数和对象之间没有特殊关系。一个对象可以引用一个函数,但随后几个对象可以同时引用同一个函数。函数本身只是另一种原生对象,例如数组。
-
非常感谢你,这是有道理的。
标签: javascript keyword