ITMISS
2022-08-27 10:49:10
我想通過(guò)將方法從類(lèi)解析為函數(shù)來(lái)向數(shù)組添加值。例課程:class Foo { constructor() { this.arr = []; } add(value) { this.arr.push(value); }}用法:let foo = new Foo();a(foo.add, "a String");function a(func, value) { func(value);}
3 回答

一只名叫tom的貓
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
函數(shù)未綁定到對(duì)象,這意味著變量取決于其上下文。addthis
如果您這樣做
constructor() {
this.arr = [];
this.add = this.add.bind(this);
}
它將替換未綁定到新實(shí)例的 add,無(wú)論您在哪里調(diào)用它,它都會(huì)引用此實(shí)例。
或者在ES6中,你可以這樣做,這與我前面的示例相同,但在引擎蓋下。
add = (value) => {
this.arr.push(value);
}

繁星淼淼
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
在構(gòu)造函數(shù)中,您需要將 add 函數(shù)綁定到該類(lèi)。
this.add = this.add.bind(this);
此外,您需要引用 arr 變量。this.arr.push
這保留了Foo實(shí)例的上下文。
添加回答
舉報(bào)
0/150
提交
取消