我希望能夠創建具有自身內在價值的對象。這樣我可以在表達式中使用它,就好像它是一個常規變量。事實證明,這很容易 - 我很想知道我是否缺少一些東西。所有它似乎需要確保對象包含一個方法「valueOf」。像這樣:具有自身內在價值的物體。另一種做吸塵器的方法
var p = {
a: 12;
valueOf: function(){return this.a+12}
}
alert(p/3); // =8
這也許是一個好主意,也包括一個「toString」方法。似乎發生的事情是,如果沒有valueOf方法,對該對象的引用會沿着原型鏈向上,直到它找到Object上的方法,它只返回「object Object」。通過提供一個本地的方法,該方法可以返回任何東西。
它似乎適用於我嘗試過的所有瀏覽器。
這是另一種提供類似getter功能的方法。但更好一點,因爲getter只能應用於對象的屬性。這樣你可以使用對象本身。
您認爲如何?這安全嗎?任何陷阱?
*「這是另一種提供類似getter功能的方法」 - 如何? Getters爲成員提供訪問權限,在這裏你重寫對象本身的價值。 – Madbreaks 2014-10-29 17:13:41
是的。但它就像一個吸氣器,你可以用一個類似變量的引用來引用這個值。此外,該對象仍然具有全部屬性。這只是一個額外的事情,你可以做的對象。 – 2014-10-29 23:59:50