尝试克隆时未定义的对象 - 但它正确记录

时间:2014-06-03 10:57:19

标签: javascript jquery

我有以下内容:

$(window).on('drop', this.onDrop.bind(this));

p.onDrop = function(e) {
    var self = this;
    var files = e.originalEvent.dataTransfer.files;
    $.each(files, function(index, file){
        self.showTemplate();
    });
};

p.showTemplate = function() {
    console.log(this.template); //logs template correctly
    var template = this.template.clone(); //Uncaught TypeError: undefined is not a function
};

我不确定发生了什么。我可以记录模板,所以我必须有权访问它,但由于某种原因它无法克隆?

1 个答案:

答案 0 :(得分:0)

错误 "undefined is not a function" 表示.clone不是函数。它在this.template上似乎不存在(至少是功能)。

由于您使用的是jQuery,因此可以使用.extend()

// Shallow copy
var clone = jQuery.extend({}, this.template);

// Deep copy
var clone = jQuery.extend(true, {}, this.template);