JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 使用这样的语法(0,_.Em)()的原因是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在调查google plusone脚本时,我已经看到以下语法多次:
(0,_.Em)();

假设_.Em是一个函数,上面的语句将导致调用该函数,这很明显.另一方面,如果没有定义,那么结果与简单的_.Em()是一样的呢?

任何人都可以了解使用这种语法背后的想法吗?

解决方法

基本上,这种语法允许在窗口对象的上下文中调用_.Em(),而不是_.

假设你有这个代码:

Foo = function() {
    this.foo = "foo";
};

Foo.prototype.Em = function() {
    alert(this.foo);
};

var _ = new Foo();

发出_.Em()将导致在_的上下文中调用Em().在函数内部,这个关键字将引用_,所以将打印出foo.

Issuing(0,_.Em)()将方法调用与对象分离,并在全局上下文中执行调用.在函数内部,该关键字将引用窗口,因此未定义将被打印,因为窗口没有foo属性.

您可以测试this fiddle中两种语法之间的差异.

大佬总结

以上是大佬教程为你收集整理的javascript – 使用这样的语法(0,_.Em)()的原因是什么?全部内容,希望文章能够帮你解决javascript – 使用这样的语法(0,_.Em)()的原因是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。