是否可以給一個對象動態財產,或者說給一個對象的屬性一動態值?例如:動態屬性值而不是函數?
var obj = {
a: 0,
b: 5,
c: //should always be a+b
}
很顯然,我可以用一個方法c=function(){return a+b}
,但我總是需要調用c
爲方法使用括號(obj.c()
而不是obj.c
)。這不會是一個問題,但我相信它必須以某種方式工作,因爲在length
屬性中的內部也是屬性而不是函數。此屬性更改動態與對象,不是一個函數...
var str = "hello world";
console.log(str.length); //11
str = "hello stack overflow";
console.log(str.length); //20
沒有它的屬性值更改beeing更新中...
我希望你能幫助我:)
你要找的ES5干將。但'.length'不是動態的;字符串是不可變的。 – SLaks
@SLaks提到,重要的是要注意'String#length'不是一個動態屬性,因爲字符串的內部值不能被改變。 – Phylogenesis
你的字符串示例不能證明你的觀點。您正在創建另一個長度不同的新字符串。與你的對象相當的是:var obj = {c:21};的console.log(obj.c); obj = {c:42};的console.log(obj.c);'。看,'c'也改變了「動態」;) –