1

我可以get用于单个属性,如下所示:

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

4

1 回答 1

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 将向您显示具有所有属性的对象(包括私有,您应该删除它们)

于 2013-02-10T22:37:43.183 回答