我有变量和函数的对象......以及新" 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")
时答案 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;