提问人:pilauria 提问时间:3/12/2022 最后编辑:T.J. Crowderpilauria 更新时间:3/12/2022 访问量:187
在 Javascript 中将对象的方法传递给函数。这是对问题的正确解释吗?
Pass an object's method to a function in Javascript. Is this the correct interpretation of the question?
问:
我在接受采访时,有这样一个问题:
当对象 O 的方法 X 作为参数传递给函数 Y 时,如果 X 包含对“this”的引用并在 Y 中执行,会发生什么?请提供代码示例。
此代码是否正确解释该问题?
let O = {
name: 'John',
age: 30,
X() {
console.log(this.name);
},
};
let generic = O.X();
function Y(param) {
return param;
}
console.log(Y(generic));
你能帮我理解和回答这个问题吗,即使只是一个例子?
答:
0赞
N.K.
3/12/2022
#1
let O = {
name: 'John',
age: 30,
X() {
console.log(this.name);
},
};
let generic = O.X;
function Y(fn) {
return fn(); // <-- execute here
}
console.log(Y(generic));
1赞
CertainPerformance
3/12/2022
#2
该问题询问函数是否被传递,而不是函数是否立即被调用,然后传递。他们可能在想这样的事情:
let O = {
name: 'John',
age: 30,
X() {
console.log(this.name);
},
};
function callbackInvoker(fn) {
fn();
}
callbackInvoker(O.X);
正如你所看到的,除非传递的方法首先被绑定,或者是一个箭头函数,否则它与对象的绑定将丢失,这可能是问题想要测试的内容。this
O
评论