gpt4 book ai didi

javascript - 我是否将对象传递给 object.defineProperties?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:59:50 24 4
gpt4 key购买 nike

我正在学习 javascript,很乐意帮助理解代码片段。

来自 Object.DefineProperties定义,第一个参数是一个对象。 MyObjectConstructor 是声明还是对象。使用构造函数,我希望调用 new 使其成为一个对象。

这就是让我困惑的地方。或者正如我在 Javascript 中读到的那样,函数是对象,所以我是否将其视为一个对象,而 this 属性是所有 staticProps 和 instanceProps 添加到的地方?

var _prototypeProperties = function (child, staticProps, instanceProps) {
if (staticProps){
Object.defineProperties(child, staticProps)
};
if (instanceProps) {
Object.defineProperties(child.prototype, instanceProps);
}
};

function myFunction() {
function MyObjectConstructor(element) {
this.element = element;
this.initialized = false;
}

_prototypeProperties(MyObjectConstructor, {...}, {...});
}

最佳答案

是的,(构造函数)函数在 javascript 中也是对象,您可以直接向它们添加属性。

示例代码段中的 _prototypeProperties 函数确实将 staticProperties 放在构造函数上,以便它们可以作为 MyObjectConstructor.myStaticProperty 进行访问。它还确实将 instanceProps(更好:“类属性”、“原型(prototype)属性”)放在 MyObjectConstructor.prototype 对象上,实例从那里继承它们: (新的 MyObjectConstructor).myPrototypeProperty。最后,您的 MyObjectConstructor 确实在实例上放置了“真实”(自己的)属性,特别是 (new MyObjectConstructor).element.initialised

关于javascript - 我是否将对象传递给 object.defineProperties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29718846/

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