Heim > Fragen und Antworten > Hauptteil
Abbildung 2 ruft die Funktion in Abbildung 1 auf und die Ausgabe ist undefiniert, aber in Abbildung 2 erzeugt der exakt gleiche Code im JQ-Klickereignis das Ausgabeergebnis. Dann habe ich in der Testfunktion eine Variable obj deklariert, um alle Objekte mit dem Attribut name=component_checkbox[] abzurufen. Zu diesem Zeitpunkt erfolgt beim Aufruf dieser Funktion im JQ-Click-Ereignis eine Ausgabe. Meine Frage ist, warum test() in Abbildung 2 das Ergebnis nicht ausgibt, aber undefiniert ist, wenn der Code in Abbildung 1 verwendet wird?
我想大声告诉你2017-05-19 10:20:04
图二替换成这样:
// test() 要指定this 为被点击的元素
test.call(this); // 利用call方法
MDN - Function.prototype.call
習慣沉默2017-05-19 10:20:04
因为this的作用域不一样了,click那个闭包里this指的是你选中的checkbox,test函数里this是window或者别的object