Javascript 一次将所有对象从一个实例复制到另一个实例

Javascript 一次将所有对象从一个实例复制到另一个实例,javascript,object,expression,instance,overriding,Javascript,Object,Expression,Instance,Overriding,我想知道,如何在JavaScript中实现这样的功能,或者说在JavaScript中实现这样的功能是可能的吗 例如,我有: // ps: this code is abstract and just an idea, not real one var A = function( inputInstance ) { if ( inputInstance !== undefined ) this = inputInstance; else this

我想知道,如何在JavaScript中实现这样的功能,或者说在JavaScript中实现这样的功能是可能的吗

例如,我有:

// ps: this code is abstract and just an idea, not real one
var A = function( inputInstance ) {
    if ( inputInstance !== undefined )
        this = inputInstance;
    else 
        this = new B();
};
我对JavaScript中的这些可能或不可能的东西感兴趣,因为类似的事情在各种函数式编程语言中都是可能的,例如F#:

如果在JavaScript中可以实现这一点,那么它可能非常有用,但我建议这是不可能的,因为我不想仅为对象副本从一个实例设置多个属性:

this.id = inputObject.id;
this.guid = inputObject.guid;
this.data = inputObject.data;
...

我不想声明
inputObject
的每个成员,我想通过一条优美的线条将所有已存在的属性从一个实例设置/复制到另一个实例,就像在函数语言(如F#)中一样,所以在JavaScript中是否可能?

不,不可能。但是,您可以使用循环

for (var key in inputInstance) {
    // Remove this if you want to copy inherited properties too
    if (inputInstance.hasOwnProperty(key)) { 
        this[key] = inputInstance[key];
    }
}
for (var key in inputInstance) {
    // Remove this if you want to copy inherited properties too
    if (inputInstance.hasOwnProperty(key)) { 
        this[key] = inputInstance[key];
    }
}