在以下代碼xFoo
將是一個對象(或其原型)具有實際屬性bar
值爲5,它將有一個實際方法foo()
。這是什麼樣的對象符號?這不是我如何在ECMAScript 5中定義屬性的方法。我本來預計xFoo.bar
是一個具有函數get()
的對象,並且xFoo.foo
是一個具有方法value()
的對象。我在這裏錯過了什麼?使用聚合物的奇怪的javascript屬性定義
var XFoo = document.registerElement('x-foo', {
prototype: Object.create(HTMLElement.prototype, {
bar: {
get: function() {
return 5;
}
},
foo: {
value: function() {
alert('foo() called');
}
}
})
});
var xFoo = new XFoo();
看起來像語法接近'Object.defineProperty' – kirilloid
可能重複的[Object.defineProperty in ES5?](http://stackoverflow.com/questions/3830800/object-defineproperty-in-es5) – kirilloid