javascript - 在 JavaScript 中创建别名的目的是什么?这个 JavaScript 语句有什么作用?

标签 javascript

我见过几个 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访问:

The value of a [[Class]] internal property is used internally to distinguish different kinds of objects. Note that this specification does not provide any means for a program to access that value except through Object.prototype.toString (see 15.2.4.2).

{}.toStringObject.prototype.toString 的快捷方式。

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

getClass.call(obj) === "[object Arguments]"

关于javascript - 在 JavaScript 中创建别名的目的是什么?这个 JavaScript 语句有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992729/

相关文章:

javascript - 从 php 数组中删除逗号

javascript - 如何使 x 轴刻度线跨越整个条形图?

php - 为什么有些 PHP 电子邮件正文包含周围的 html 代码,而其他则没有?那不是 PHPMailer

javascript - 在 JavaScript 中隐藏 'div' 标签

javascript - 将 Botium 脚本内存变量传递到断言器中

javascript - 如何从 javascript 中的二维数组中删除开头的逗号?

javascript - 下拉列表不在 jQuery 中为 .slideDown() 设置动画

javascript - PageMethods 和 UpdatePanel

javascript - 在 Node JS 中仅使用包含数据的变量的正确方法是什么?

javascript - 根据ul选择li元素