【发布时间】:2012-09-07 20:55:53
【问题描述】:
我注意到,在 ECMAScript 标准中,您有 defineProperty 之类的东西,这就像在 JavaScript 对象中定义属性和什么不是,prototype 通过使用方法和其他东西来扩展对象。有没有一个速记可以带你去:
Object.defineProperty(Person,"name",{
type : "string",
get : function(){ return this.$d.name; },
set : function(_v){ this.$d.name = _v }
})
到这么简单的事情:
function Person(args){
// ... snip ...
this.defineProperty("name",{
get : function() { return $d.name },
set : function(_v) { $d.name = _v; },
type : "string"
});
// ... snip ...
}
我很确定,借助 JavaScript 的魔力,有一种更简单的方法。但我可能只是懒惰。有什么指点吗?
注意:我正在避免使用 CoffeeScript,这太让人想起 Ruby,恕我直言。
【问题讨论】:
标签: javascript object ecmascript-5