在JavaScript中创建别名的目的是什么?这个JavaScript语句做什么?

在JavaScript中创建别名的目的是什么?这个JavaScript语句做什么?,javascript,Javascript,我已经看到一些JavaScript库在文件的开头使用了这种语法。此语句的含义是什么,运行此语句后getClass的值是多少,为什么需要这样做?还有,分号开头的目的是什么 ;(function (window) { // Convenience aliases. var getClass = {}.toString, isProperty, forEach, undef; // remaining function goes here } 运行此语句后getClass的值是多少

我已经看到一些JavaScript库在文件的开头使用了这种语法。此语句的含义是什么,运行此语句后getClass的值是多少,为什么需要这样做?还有,分号开头的目的是什么

;(function (window) {
  // Convenience aliases.
  var getClass = {}.toString, isProperty, forEach, undef;

   // remaining function goes here
}
运行此语句后getClass的值是多少

{}.toString
相同

为什么需要这样做

事实并非如此。评论说这是一个方便的别名

还有,分号开头的目的是什么

;(function (window) {
  // Convenience aliases.
  var getClass = {}.toString, isProperty, forEach, undef;

   // remaining function goes here
}
因此,如果该脚本与另一个脚本连接,而前一个脚本未能包含
在其最后一条语句之后,不会导致错误

运行此语句后getClass的值是多少

{}.toString
相同

为什么需要这样做

事实并非如此。评论说这是一个方便的别名

还有,分号开头的目的是什么

;(function (window) {
  // Convenience aliases.
  var getClass = {}.toString, isProperty, forEach, undef;

   // remaining function goes here
}

因此,如果该脚本与另一个脚本连接,而前一个脚本未能包含
在其最后一条语句之后,不会导致错误。

在ECMAScript 5中,对象具有内部[[Class]]属性,根据,只能通过
对象.prototype.toString
访问该属性:

[[Class]]内部属性的值在内部用于 区分不同种类的物体。请注意,此规范 不提供程序访问该值的任何方法,除非 通过
Object.prototype.toString
()

{}.toString
是指向
对象.prototype.toString
的快捷方式

例如,
getClass
可用于测试对象是否为:


在ECMAScript 5中,对象有一个内部[[Class]]属性,根据,只能通过
Object.prototype.toString
访问该属性:

[[Class]]内部属性的值在内部用于 区分不同种类的物体。请注意,此规范 不提供程序访问该值的任何方法,除非 通过
Object.prototype.toString
()

{}.toString
是指向
对象.prototype.toString
的快捷方式

例如,
getClass
可用于测试对象是否为:


当代码与其他脚本组合并缩小时,最初的分号只是为了防止发生意外。它什么也不做,但是如果前面的脚本没有正确终止(JS非常友好,并且全部都是),它可能会导致错误。有关分号,请参阅初始分号,以防止在代码与其他脚本组合和缩小时发生意外。它什么也不做,但是如果前面的脚本没有正确终止(JS非常友好,而且全部都是),它可能会导致错误。对于分号,请参见-因此,基本上在这一条语句中,我们声明了一个值为{}.toString的变量getClass,并声明了其他变量isProperty,forEach,undef在这条语句之后所有变量都有未定义的值,对吗?-所以基本上在这条语句中,我们声明了一个变量getClass,其值为{}.toString,还声明了其他变量isProperty,forEach,undef在这条语句之后所有变量都有未定义的值,对吗?