关于this对象的一个例子?
例子来自高程三,看了说明还是不理解,能详细说明下吗,感觉跟直接调用没区别呀?
var name = 'The Window';
var object = {
name : 'My Object',
getName: function(){
return this.name;
}
};
(object.getName = object.getName)();
// 'The Window',在非严格模式下
赋值语句有返回值,赋了什么,就返回什么。
object.getName = object.getName 执行这句你会发现返回的是 object.getName 的代码
ƒ (){ return this.name; } 所以 (object.getName = object.getName)(); 等于把 object.getName 的代码拿出来当成一个匿名函数执行,等于这样:
(function(){ // 这里的代码就是 object.getName 的代码 return this.name; })() 这个代码比较迷惑人的是 object.getName = object.getName ,自己给自己赋值,感觉好像还是他自己,其实这里要用的是赋值返回的代码,跟赋值给谁没关系的。
(helloworld = object.getName)(); 这样写执行结果一样,唯一不同是会污染 helloworld 变量。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。