Javascript 一次将所有对象从一个实例复制到另一个实例
我想知道,如何在JavaScript中实现这样的功能,或者说在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
// 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];
}
}