2016-06-28 74 views
0

我想在原型中使用吸气器&吸气器。我通过在构造函数中放入Object.defineProperty来做到这一点。原型中的吸气器和吸气器

我知道我可以只创建getWhatever()的原型对象的方法,通过我想通过真正的getter/setter方法

访问属性而具有defineProperty原型对象以外的简洁这样不对我感觉很好。有没有更好的办法?

function Person(name) { 
    this._name = name; 

    Object.defineProperty(this, 'name', { 
     get: function() { 
      return this._name; 
     } 
    }); 
} 

的普拉克:https://plnkr.co/edit/h3tgJjQBGspepdho3lqJ?p=preview

+1

为什么不直接定义吸气的原型构造函数外:'Object.defineProperty(Person.prototype的, '名',{...});' – Teemu

+2

还可以考虑使用'让_name'代替'this._name'这样的名称将不会被改变到你的对象之外:-) – Neal

+0

我投票结束这个问题作为题外话,因为它可能属于代码审查 – Neal

回答

0

为什么不这样做的原型本身?

function Person(name){ 
    this._name = name; 
} 

Object.defineProperty(Person.prototype, 'name', { 
    get:function(){ return this._name; } 
}) 
+0

'this._name'在哪里定义? –

+1

啊好,我没有c&p的OP的构造函数 – jusopi

+0

但是,然后不能一个人'personObject._name ='blah''来覆盖名字? – Neal