【问题标题】:What JavaScript object copy function works with greasemonkey?什么 JavaScript 对象复制函数适用于greasemonkey?
【发布时间】:2009-06-23 22:13:47
【问题描述】:

我知道还有一个与在 JavaScript here 中复制对象有关的问题,但他们提供的代码不适用于greasemonkey。从我能够追踪的情况来看,已接受答案的代码在该行消失/停止:

var temp = new obj.constructor();

有什么办法可以看出哪里出了问题?

我没有必要使用相同的函数来复制对象,但我想要一些可行的东西。你知道一些函数吗?

【问题讨论】:

    标签: javascript object copy greasemonkey


    【解决方案1】:

    这似乎有效:

    var a = {
        yo: 'hello',
        do: function() {alert(this.yo + ' world');}
    };
    
    var cloneStructor = function() {};
    cloneStructor.prototype = a;
    
    var b = new cloneStructor();
    a.yo = 'goodbye';
    b.yo = 'what\'s up';
    
    a.do();
    b.do();
    

    【讨论】:

    • 这不只是一个参考而不是真正的副本吗?
    • 我提供的示例使用了“new”关键字,并且似乎有效——a 和 b 最终具有不同的属性。我发现的另一种方法使用 JSON.eval(JSON.stringify(cloneMe))。这可能值得一试。否则,您可以手动循环遍历所有属性并重建内容。
    猜你喜欢
    • 2015-09-26
    • 2018-01-14
    • 1970-01-01
    • 2013-05-27
    • 2019-09-11
    • 2015-03-19
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多