Kyl*_*ker 6 javascript ecmascript-6
我最近在一些源代码中看到了这一点:
module.exports = Object.assign(function GamepadButton() {}, {
FACE_1: 0,
FACE_2: 1,
FACE_3: 2,
FACE_4: 3,
// etc...
});
Run Code Online (Sandbox Code Playgroud)
为什么要这样做?为什么将对象分配给新声明的空函数?这里发生了什么?(我假设 module.exports 在这里无关紧要,但以防万一,我也包括在内。)
来源:https : //github.com/donmccurdy/aframe-extras/blob/4a05b159a9f5b79321acf002b85fee6cfcddc4d2/dist/aframe-extras.controls.js#L9
不知道作者这样写是不是出于这个目的
但:
这是向 JavaScript 类添加静态变量的典型方法。
运行上面的代码后,你可以运行
var myExports = new module.exports()
var myOtherExports = new module.exports()
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令从所有实例访问相同的FACE_1, , 等变量FACE_2
myExports.constructor.FACE_1
myOtherExports.constructor.FACE_1
Run Code Online (Sandbox Code Playgroud)
并且还与
module.exports.FACE_1
Run Code Online (Sandbox Code Playgroud)
这些变量共享相同的引用(静态变量行为)。
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |