gpt4 book ai didi

javascript - 为子实例创建同名属性,而父属性的可写为假

转载 作者:行者123 更新时间:2023-11-29 21:12:00 25 4
gpt4 key购买 nike

"use strict";
var a = Object.create(Object.prototype, {
name: {
writable: false,
value: 'foo'
}
});

var b = Object.create(a);
b.name = 'bar' // Uncaught TypeError: Cannot assign to read only property

如果我想在保持 a 不变的情况下为 b 创建一个“名称”属性怎么办?是否可以?如果没有,你能告诉我为什么它不起作用吗?谁能帮帮我,谢谢!

最佳答案

您可以在创建 b 对象时覆盖 name 属性。

"use strict";
var a = Object.create(Object.prototype, {
name: {
writable: false,
value: 'foo'
}
});

var b = Object.create(a, {
name: {
value: 'bar',
writable: false
}
});

console.log(a.name, b.name)


您还可以使用 Object.defineProperties()方法直接在对象上定义新属性或修改现有属性。

"use strict";
var a = Object.create(Object.prototype, {
name: {
writable: false,
value: 'foo'
}
});

var b = Object.create(a);
Object.defineProperties(b, {
name: {
value: 'bar',
writable: false
}
});

console.log(a.name, b.name)

关于javascript - 为子实例创建同名属性,而父属性的可写为假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41375640/

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