这篇文章主要介绍了浅谈类似于(function(){}).call()的js语句,的相关资料,需要的朋友可以参考下
Javascript 是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
研究新浪微博的自动登陆流程,其中涉及到它的加密算法脚本,其中有一段如下形式的代码:
(function(){...}).call(name)
其中红色的....是函数的内部各种实现,name为一个对象的名字.这种形式的js从来没见过啊(恕我js这方面见识少啊).然后百度了一下大概的意义如下:
.call(name)的作用实际是将name作为前面函数所在域中的this来用,也就是说此时函数中的this就相当于引用的是name.
这段代码的实际意义可以认为:函数的具体实现对变量name的进行的改造,或者更简单的说函数的实现就是变量name的具体实现,某种意义上它等价于:
var name = function(){...}
来源: