为什么这个扩展方法不起作用?

时间:2015-03-18 20:25:58

标签: javascript jquery methods

function world_rat_head() {
    this.ext = function (obj) {
        if (obj instanceof Object) return $.extend(obj, this); 
    };
}

我希望结果是一个扩展对象。我该怎么做?

1 个答案:

答案 0 :(得分:3)

您不需要(obj instanceof Object)。如果您尝试扩展原语,$.extend将默默无效。

另外,请注意$.extend的第一个参数是添加内容的内容。如果您打算$.extend修改this,则this需要成为第一个参数;否则,它就像你拥有它一样。

这应该有效,假设this是您要将合并到 obj的对象:

this.ext = function(obj) {
    return $.extend(obj, this);
}
// Test
var o = {a: 5};
console.log(this.ext(o));

如果它不起作用,请记录objthis,看看它是否符合您的预期。另外,请确保this不是window