JavaScript中的Getters和Setters(语法正确吗?)
Getters and Setters in JavaScript (Correct syntax ?)
我是JavaScript的新手,但不是OOP的新手。
这是创建getters&JavaScript中的setters?
"类",
function Person (age){
this.age = age;
};
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
}
相关文章:
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 为什么匿名函数本身就是javascript中的语法错误
- "控制器作为“;$timeout中的语法
- jQuery中的匿名函数语法
- 由 if / else 语句中的无效语法导致的语法错误
- Javascript中的LESS变量给出语法错误
- Chrome 中的 JSX/JavaScript 语法
- jQuery 选择器中的简单 jQuery 语法和串联
- Jquery 替换所有文本语法正则表达式中的变量
- JS中的条件运算符-失败的语法错误
- SQL 语法中的语法错误
- 函数语法中的方括号在 MDN 上是什么意思?
- 什么是原生JavaScript语法中的$httpProvider.defaults.headers.common
- filter:javascript语法中的alpha
- 使用Karma和RequireJS测试CommonJS语法中的文件
- 当我点击谷歌地图[$parse:语法]中的箭头图标时,谷歌地图错误
- 如何将Javascript语法中的正则表达式转换为.net语法?
- 不寻常语法中的圆括号()位置
- 我的“数据”在哪里?Razor语法中的Ajax选项