JS在构造函数中使用get

JS use get in constructor

本文关键字:get 构造函数 JS      更新时间:2023-09-26

在"基本"对象中,很容易定义"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

由于您的问题已用ecmascript-6 标记

您只需使用es6类语法和getter:

class BasicConstructor {
    get aProperty() { 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