<script language="javascript">
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
</script>
<script language="javascript">
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return this.name;
}
};
alert(object.getNameFunc());
</script>
3和4比较好理解,容易混淆的是1和2。当作为函数来运行时this指window 当作为方法来运行时this指向当前对象。那么只有确定下函数是作为方法 来执行还是作为函数来执行问题就解决了。那么如何区分呢?根据ECMA规范: 4.3.27 method function that is the value of a property. 只有一个函数被作为一个对象的熟悉时才能被成为一个方法。因此为身边会 出现这样的运行结果也就很容易理解了
------解决方案-------------------- 只有一个函数被作为一个对象的熟悉时 这句是什么意思?
------解决方案--------------------