问答

这里的屏蔽 this 是什么语法?

作者:admin 2021-05-13 我要评论

代码如下,把this屏蔽了,但是没有看懂是什么原因。 var obj = { method: function() { return this; } };console.log(obj.method() === obj); // true console....

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

代码如下,把this屏蔽了,但是没有看懂是什么原因。

var obj = { method: function() { return this; } };
console.log(obj.method() === obj); // true   
console.log((0,obj.method)() === obj); // false
###
var obj = { method: function() { return this; } };
// obj.method():此时显式绑定 this 是 obj,所以是true
console.log(obj.method() === obj); // true 
// 逗号运算符号会返回最后一个运算的结果,是函数function() {return this}
// 此函数执行时,this 是隐式绑定,此时是全局执行上下文,window对象
console.log((0,obj.method)() === obj); // false
###

JavaScript深入之从ECMAScript规范解读this

规范 - Function Calls

简单来说就是对于 (0, obj.method) 这个 MemberExpression 来说,它的结果的 Type(ref) 不是 ReferencethisValue 会是 undefined(当然非严格模式下会隐式转换为全局对象),所以和 obj 不等。

具体的分析看第一篇文章。

###

逗号操作符

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 这里的屏蔽 this 是什么语法?

    这里的屏蔽 this 是什么语法?

  • 有什么办法能获取ppt文件中的数据并将

    有什么办法能获取ppt文件中的数据并将

  • 服务端渲染react-redux 报错 Invalid h

    服务端渲染react-redux 报错 Invalid h

  • 朋友们解释一下输出结果

    朋友们解释一下输出结果

腾讯云代理商
海外云服务器