如何从ES6类中的getter函数返回构造函数参数值

时间:2015-08-16 20:11:30

标签: javascript class ecmascript-6

示例:

class Person {
  constructor(name) {

  }

  get name() {
    return /* “name” argument from constructor */;    
  }
}

我希望name getter返回传递给构造函数的name值。

2 个答案:

答案 0 :(得分:3)

将参数保存到实例属性:

String Fpath = getPath(this, uri) ;
File file = new File(Fpath);
String filename = file.getName();

Demo

答案 1 :(得分:0)

class Person {
  constructor(name) {
    Object.defineProperty(this, 'name', {
      get() {
        return name;
      }
    });
  }
}

应该这样做:)(不漂亮,但会做)

你可以做一个辅助功能:

function makeGetter(obj, prop, value) {
  Object.defineProperty(obj, prop, {
    return value;
  });
}

class Person {
  constructor(name) {
    makeGetter(this, 'name', name);
  }
}

<强>更新

你真正需要的是以下(不能相信我过于复杂):

class Person {
  constructor(name) {
    this.name = name;
  }
}
var p = new Person('Edwin');
p.name; // returns 'Edwin'

p.name = 'Sime'; // Sets name
p.name; // returns 'Sime'