this的指向
网友问题:
var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ return this.name; } }; var a = object.getNameFunc; alert(a()); alert(object.getNameFunc());
原因:
object.getNameFunc()
,此时的 object.getNameFunc
为引用类型,其 base 为 object
,this 指向的是 base,所以返回 object.name
的值
name = object.getNameFunc
, test
作为标识符,生成了其他引用类型的值,此时 base 已经从 object
重置为 null
,也就是会指向 global(window),所以返回的是 window.name 的值。
问题的关键在于「引用类型(type Reference)的中间值发生改变」