Javascript将函数分配给现有变量

时间:2014-06-29 13:37:32

标签: javascript function

示例代码:

var someVar = {};
someVar.text = "some text";

var thisFunc = function(){
    this.subfunc = function(){

    }
}

如何将thisFunc分配给someVar?如果我执行someVar = new thisFunc(),则someVar.text将会消失。

谢谢。

2 个答案:

答案 0 :(得分:2)

我想你想要像下面这样的东西: -

var someVar = {};
someVar.text = "some text";

var thisFunc = function(){
  //do some
}
someVar.func = thisFunc;

答案 1 :(得分:0)

似乎extend功能会在您的情况下派上用场。这是一个小辅助函数,它将一个对象的属性分配给另一个对象(如果你使用的是像Underscore这样的第三方库,你可能已经有了这样的函数):

function extend(obj1, obj2) {
    for (var key in obj2) {
        if (Object.prototype.hasOwnProperty.call(obj2, key)) {
            obj1[key] = obj2[key];
        }
    }
    return obj1;
}

然后你可以这样做:

var someVar = {};
someVar.text = "some text";

var thisFunc = function(){
    this.subfunc = function(){

    }
}

someVar = extend(thisFunc, someVar);