我正在学习javascript并正在查看此代码:
function foo1 {
var curObj = this;
this.foo2 = function() {
curObj.test = "foo2";
}
this.foo3 = function() {
curObj.test = "foo3";
}
// called by
x.on("click", curObj.foo1)
x.on("click", curObj.foo2)
}
" foo2"和" foo3"函数是重复的,所以我想用以下的东西替换它们:
function setTest(foo) {
curObj.test = foo;
}
function foo1 {
var curObj.test;
x.on("click", setTest(foo));
}
所以我的问题是如何将curObj传递给函数setTest,x.onClick = setTest(this,foo)不起作用。如果我想修改函数setTest()中的其他curObj值会怎么样?" this"盖那个?是"这是"对内存地址或对象id的引用?
你们真棒,感谢您愿意提供的任何帮助!
答案 0 :(得分:0)
我相信您正在寻找的是call()
功能
function testThis () {
console.log(this);
}
testThis.call(curObj) // prints curObj
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/call