JS在构造函数中使用get
JS use get in constructor
在一个"basic"对象中,很容易定义一个'get'属性.
var anObject = {
get aProperty() {
return "abc";
}
}
document.write(anObject.aProperty); //abc
我找到了在构造函数中添加 get 属性 的解决方案。
var BasicConstructor = function ()
{
Object.defineProperty(this, "aProperty", {get : function(){ return "abc"; }});
}
var anOtherObject = new BasicConstructor ();
document.write(anOtherObject.aProperty); //abc
他们的解决方案更简单易读吗?我尝试了一些类似下面的解决方案但没有成功。
var BasicConstructor = function ()
{
this.aProperty = get ()
{
return "abc";
}
}
var anOtherObject = new BasicConstructor ();
document.write(anOtherObject.aProperty); //abc
this.aproperty = get () {}
是无效语法。您需要 "function" 关键字(您实际上根本不需要 get,但如果需要可以保留它)
var BasicConstructor = function ()
{
this.aProperty = function get ()
{
return "abc";
}
}
var anOtherObject = new BasicConstructor ();
document.write(anOtherObject.aProperty()); //abc
由于您的问题 被 标记为 ecmascript-6
你可以只使用 es6 class 语法和 getter:
class BasicConstructor {
get aProperty() { return 'abc'; }
};
var anOtherObject = new BasicConstructor();
document.write(anOtherObject.aProperty); //abc
在一个"basic"对象中,很容易定义一个'get'属性.
var anObject = {
get aProperty() {
return "abc";
}
}
document.write(anObject.aProperty); //abc
我找到了在构造函数中添加 get 属性 的解决方案。
var BasicConstructor = function ()
{
Object.defineProperty(this, "aProperty", {get : function(){ return "abc"; }});
}
var anOtherObject = new BasicConstructor ();
document.write(anOtherObject.aProperty); //abc
他们的解决方案更简单易读吗?我尝试了一些类似下面的解决方案但没有成功。
var BasicConstructor = function ()
{
this.aProperty = get ()
{
return "abc";
}
}
var anOtherObject = new BasicConstructor ();
document.write(anOtherObject.aProperty); //abc
this.aproperty = get () {}
是无效语法。您需要 "function" 关键字(您实际上根本不需要 get,但如果需要可以保留它)
var BasicConstructor = function ()
{
this.aProperty = function get ()
{
return "abc";
}
}
var anOtherObject = new BasicConstructor ();
document.write(anOtherObject.aProperty()); //abc
由于您的问题 被 标记为 ecmascript-6
你可以只使用 es6 class 语法和 getter:
class BasicConstructor {
get aProperty() { return 'abc'; }
};
var anOtherObject = new BasicConstructor();
document.write(anOtherObject.aProperty); //abc