gpt4 book ai didi

javascript - JavaScript 中的 Getters 和 Setters(语法正确?)

转载 作者:行者123 更新时间:2023-11-29 14:52:34 25 4
gpt4 key购买 nike

我是 JavaScript 的新手,但一般来说不是 OOP。

这是在 JavaScript 中创建 getter 和 setter 的有效方法吗?

“类”,

function Person (age){
this.age = age;
};

setter/getter ,

Person.prototype.getAge = function(){
return this.age;
};

和一只二传手。

Person.prototype.setAge = function(arg){
this.age = arg;
};

它似乎工作正常,但我不知道惯例,到处都有不同的描述,但我的解决方案有效吗?

最佳答案

您可能需要 Object.defineProperty ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty ),这是一个使用示例:

Object.defineProperty(Person.prototype, 'age', {
get: function(){
return this.__age__;
},
set: function(value){
this.__age__ = value;
}
});

如果需要,您也可以在其他地方保存变量。以下将充当在 Person 的所有实例中设置和访问的单例值:

var age;

Object.defineProperty(Person.prototype, 'age', {
get: function(){
return age;
},
set: function(value){
age = value;
}
});

如果您希望为您创建的 Person 对象的每个实例分配一个 age 变量,您需要在构造函数中添加变量声明:

function Person(){
var age;
// ditto from the second example
}

关于javascript - JavaScript 中的 Getters 和 Setters(语法正确?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23123017/

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