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 - 我如何使用 jQuery 比较两个数组(可以有 : DOM elements, 数字、字符串、数组或字典)?

javascript - 我们应该在 React 的什么地方发起 API 请求?

javascript - 使用 gatsby-plugin-sitemap 仅生成一个页面到站点地图

javascript - 如何在 Python 中存储从 Javascript 动态生成的 HTML 表单元素?

javascript - Yii2 Ajax DropDownList 更改 div 的内容

javascript - 选择选项元素 JavaScript 控制台

javascript - 重置设置超时

javascript - 隐藏用户事件的特定 Div(即点击)

javascript - knockout 映射确实代表了 html 的愿望

javascript - 使用 Javascript 将连续的元素组合在一起