2013-02-10 61 views
1

我可以用get爲各個屬性,如:整個對象的自定義getter,不僅屬性?

function MyObjectConstructor() { 
    this._internalValueOne = 'foo'; 
    this._internalValueTwo = 'bar'; 
} 

MyObjectConstructor.prototype = { 
    get usefulValueOne() { 
     return this._internalValueOne + 'baz'; 
    }, 
    get usefulValueTwo() { 
     return this._internalValueTwo + 'baz'; 
    } 
} 

var myObject = new MyObjectConstructor(); 

現在myObject.usefulValueOne'foobaz'myObject.usefulValueTwo'barbaz'。我可以以某種方式使用get來確保myObject(以及基於MyObjectConstructor的任何其他對象)也返回對象,如{usefulValueOne: 'foobaz', usefulValueTwo: 'barbaz'}?還是有其他一些首選的方法來做到這一點?

當然,我也懷疑set同樣的事情。

回答

0

您可以使用此:

function MyObjectConstructor() { 
    this._internalValueOne = 'foo'; 
    this._internalValueTwo = 'bar'; 
} 

MyObjectConstructor.prototype = { 
    get usefulValueOne() { 
     return this._internalValueOne + 'baz'; 
    }, 
    get usefulValueTwo() { 
     return this._internalValueTwo + 'baz'; 
    }, 
    get showProt(){ 
     var B = {}; 
     for (var i in this){ 
      if (i.hasOwnProperty && (i !== 'showProt')){ 
       B[i] = this[i]; 
      } 
     } 
     return B; 
    } 
} 
var myObject = new MyObjectConstructor(); 

現在myObject.showProp會告訴你所有屬性的對象(包括士兵,你應該刪除)

相關問題