classのprivate functionを呼びたい。
まずクラスFooを定義する。
class Foo {
func1() {
console.log('func1が呼ばれました');
this.#func2();
}
#func2(){
console.log('func2が呼ばれました');
}
}
で呼び出し処理。これで呼べる。
call.js
$(function(){
let obj = new Foo();
obj.func1();
});
次にjqeuryのblur内で呼び出す。これは手こずった。
index.html
<p>名前:<input type="text" id="text" size="40"></p>
テキストボックスのフォーカスが外れた時。
call.js
let obj = new Foo();
$('#text').blur(obj.func1.bind(obj));
このケースではthis.#func2();呼び出し時にthisがFooオブジェクトを指していないので、thisがFooオブジェクトを指すようにbindしてあげる。
昨日勉強したbindが早速役に立った。