我想要做的是为 Javascript 对象构建一个 clone() 函数。如您所知,Javascript 中缺少本机功能可能会很痛苦。我有一个很好的方法来做到这一点,但在可用性方面,这很尴尬。这是到目前为止的功能:
function clone(objectToClone) {
var myClone = function() {};
myClone.prototype = objectToClone;
return [
new myClone(),
new myClone()
];
}
如您所见,目前我只返回一个包含两个克隆的数组。这使得用法看起来像这样:
// usage
var bar = new foo();
bar = clone(bar); // forks bar into two separate copies of bar (awkward)
// bar[0] is now clone 1
// bar[1] is now clone 2
我想做的是能够执行以下操作:
function clone(objectToClone) {
var myClone = function() {};
myClone.prototype = objectToClone;
objectToClone = new myClone(); // somehow magically?
return new myClone();
}
// usage
var bar = new foo();
var baz = clone(bar); // returns a copy, and bar is now one of the copies as well.
// bar is now clone 1
// baz is now clone 2
不幸的是,这不起作用,因为分配参数不会影响调用范围。我希望有人可以帮助想出一些 js 技巧,让我可以在所需的庄园中使用该功能。任何想法都非常感谢。