用new参数替换旧函数

时间:2016-04-06 09:08:02

标签: javascript function replace

我有变量和函数的对象......以及新" function2"

的定义
var object = {
    x: 11,
    y: 22,
    getX: function() {
        return this.x;
    }
};

var function2 = function(value) {
    return value;    
};

我想替换旧的getX函数的定义:

object.getX = function2(arg);

但是这段代码不是替换功能,而是设置新值

如何制作?

我想要价值" 15"当我调用object.getX(15).... value" aa"当我调用object.getX(" aa")

2 个答案:

答案 0 :(得分:2)

您必须使用bind(context,arguments..)来实现此目的,

object.getX = function2.bind(object, arg);

如果您只是想在不设置任何上下文(function)的情况下替换this

然后你可以简单地通过。

object.getX = function2;

您的完整代码将是,

var object = {
    x: 11,
    y: 22,
    getX: function() {
        return this.x;
    }
};

var function2 = function(value) { return value; };
object.getX = function2.bind(object);

console.log(object.getX("aa")); //"aa"

答案 1 :(得分:1)

你可以简单地喜欢

object.getX = function2;