2013-02-10 23 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会告诉你所有属性的对象(包括士兵,你应该删除)

相关问题