javascript - JavaScript 得到设置。变更集
问题描述
为什么不设置名字?错误在哪里?
const person = {
firstName: "Yasar",
lastName: "KEMAL",
}
Object.defineProperty(person, "fullName", {
get function() { //get sadece okuduğu için kısa kod.
return this.firstName + " " + this.lastName
},
set function(value) { //change name set error
const parts = value.split(' ');
this.firstName = parts[0];
this.lastName = parts[1];
}
})
Object.defineProperty(person, "age", {
value: 50,
writable: true
})
person.age = 60;
person.fullName = "Kemalettin TUĞCU" //send name set error
console.log(person);
解决方案
如果要查看添加了 的属性Object.defineProperty
,则必须将这些属性标记为可枚举。
阅读更多关于Object.defineProperty()
这里。
let person = {
firstName: "Yasar",
lastName: "KEMAL"
};
Object.defineProperty(person, 'fullName', {
get() {
return this.firstName + " " + this.lastName;
},
set(value) {
[this.firstName, this.lastName] = value.split(" ");
},
enumerable:true
});
Object.defineProperty(person, "age", {
value: 50,
writable: true,
enumerable:true
});
person.age = 60;
person.fullName = "Kemalettin TUĞCU"; //send name set error
console.log(person);
推荐阅读
- ios - 如何在swift中找到其他类中的类实例名称?
- xml - 如何根据 Azure Logic App 中的节点名称更新 XML 节点值并删除 XML 节点
- ruby-on-rails - Rails + 谷歌 TTS。Google::Cloud::ResourceExhaustedError 8:收到的消息大于最大值(5250205 与 4194304)
- sql-server - MSSQL 是否支持 MySQL 语句“CREATE DATABASE IF NOT EXISTS {db}”的等效形式?
- java - docker run 命令不采用 --env 变量占位符值
- python - 按几列对数据框的结果进行分组,并计算每列的不同唯一值
- excel - 在 Excel 中四舍五入的数值
- angularjs - 如果表格在 AngularJs 中超过 1 行,则仅显示一列
- next.js - Next.js - 是否可以调试 getServerSideProps?
- c - 为什么动态分配的变量不会像静态变量一样改变(当我们使用它们的地址时)