gpt4 book ai didi

javascript - 为什么要这样使用 object.assign? (模块导出中的空函数上的新对象)

转载 作者:行者123 更新时间:2023-12-01 15:15:57 30 4
gpt4 key购买 nike

我最近在一些源代码中看到了这一点:

    module.exports = Object.assign(function GamepadButton() {}, {
FACE_1: 0,
FACE_2: 1,
FACE_3: 2,
FACE_4: 3,
// etc...
});
为什么要这样做?为什么要将对象分配给新声明的空函数?这里发生了什么? (我认为 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()
你可以访问相同的 FACE_1 , FACE_2 , 等来自所有实例的变量
myExports.constructor.FACE_1
myOtherExports.constructor.FACE_1
并且还与
module.exports.FACE_1
变量 共享同一引用 (静态变量行为)。

关于javascript - 为什么要这样使用 object.assign? (模块导出中的空函数上的新对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62590412/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com