在JavaScript中创建别名的目的是什么?这个JavaScript语句做什么?
What is the purpose of creating aliases in JavaScript? What does this JavaScript statement do?
我看到有几个JavaScript库在文件开头有这种语法。这条语句是什么意思,运行该语句后getClass的值是多少,为什么需要这样做?还有,开头的分号的目的是什么?
;(function (window) {
// Convenience aliases.
var getClass = {}.toString, isProperty, forEach, undef;
// remaining function goes here
}
在ECMAScript 5中,对象有一个内部的[[class]]属性,根据8.6.2,它只能通过Object.prototype.toString
:
[[Class]] internal属性的值在内部用于区分不同种类的物体。注意这个规范没有为程序提供任何访问该值的方法,除了通过
Object.prototype.toString
(见15.2.4.2)。
{}.toString
是通往Object.prototype.toString
的捷径。
例如,getClass
可以用来测试一个对象是否是一个Arguments对象:
getClass.call(obj) === "[object Arguments]"
getClass的值是多少,
与{}.toString
相同。
为什么需要?
它不是。注释说这是一个方便的别名。
还有,开头的分号的目的是什么?
因此,如果脚本与另一个脚本连接,并且前一个脚本在其最后一条语句后没有包含;
,则不会导致错误。
相关文章:
- 如何调用这个匿名 JavaScript 函数
- 使用“;这个“;JavaScript原型方法中的关键字
- 如何向这个javascript/jquery函数添加参数
- 为什么我在这个javaScript代码中使用NaN
- 你能解释一下为什么这个javascript不正确吗
- 在这个幻灯片中没有淡出效果JavaScript,CSS和HTML
- Javascript 这个关键字在原型函数中的递归执行一次,然后未定义
- JavaScript.这个表达式是什么意思:“ var a = b === c && d;".
- JavaScript:这个数字是如何作为输出的
- 理解javascript这个范围 - 一个简单的骨干示例
- Javascript:这个代码片段有什么作用和错误代码Uncatch TypeError:allEnemies.forE
- Javascript:这个变量放在哪个作用域中
- javascript:这个语法意味着什么
- 为什么我可以't设置z-index通过javascript这个函数?(我知道骆驼案)
- jquery javascript这个函数没有调用
- Javascript这个表单相当于jquery表单
- Javascript 这个关键字 - 内部函数
- 小javascript这个问题
- javascript:这个关键字
- Javascript这个对象在间隔/超时