【发布时间】:2018-11-15 04:22:47
【问题描述】:
我正在学习 Codecademy 课程,并编写了以下有效的代码:
let person = {
_name: 'Lu Xun',
_age: 137,
set age (newAge) {
if (typeof newAge === 'number'){
this._age= newAge;
} else {
console.log('Invalid input');
}
}
}
person.age= 22;
console.log(person['_age']);
我开始了解 set 的工作原理,并认为它的工作原理与在 person 对象中定义方法基本相同,只是语法不同。
所以我尝试了一下,调用了 age 方法,使用调用方法的正常方式从对象外部将 22 传递给它。它的工作原理相同。见下文。
let person = {
_name: 'Lu Xun',
_age: 137,
age: function (newAge) {
if (typeof newAge === 'number'){
this._age= newAge;
} else {
console.log('Invalid input');
}
}
}
person.age(22);
console.log(person['_age']);
使用“set”语法有什么好处?即,当正常的函数/方法定义以相同的方式工作时,为什么要使用它?
【问题讨论】:
-
所以你可以使用
= -
当您可以一次将属性分配给一个新对象时,为什么要使用对象字面量?这是同一种问题。
-
这个可能的副本应该包含很好的信息 - JavaScript get/set methods vs. standard methods - Set Documentation 也应该有帮助。是否有好处使用其中一个取决于您,并且很可能取决于个人偏好/主要基于意见。
标签: javascript function methods javascript-objects setter