私の実験を適切なJavascriptでさらに進めると、別のメソッド(SayHello)を別の(WaitAndSayHello)メソッドから実行しようとしています。コールバックが含まれているので、私はbindを使って、各メソッドで 'this'がオブジェクトを参照していることを確認しました。バインドを使用してメソッドがオブジェクトを参照しているが、動作していないと思われる
コードは 'hello world'を出力し、 'Object#has no method' SayHello 'で2回目に失敗します。私は、console.logから、 'this'はイベントを参照していることがわかります。しかし、bind()を使ってこれを修正してはいけませんか?
bind()はどのように動作させることができますか?
また、私はこれをきちんとやりたいと思います。すなわち、複数の場所でオブジェクトの名前を参照することなく、
ありがとう@jAndy、それは事を完全に説明します。私はいつも 'var self = this'のことを少し見つけたので、2番目のソリューションを使用しました。私はそれが私の日常的なJSプログラミングの一部になるだろうと思っています。 – mikemaccana
@nailer:大歓迎です。'.bind()'はES5に含まれているので、古いブラウザでは利用できない可能性があることに注意してください。しかし、そのシムに非常に簡単にそこに利用可能なシムがたくさんあります。 – jAndy
PS。 @jAndy私は、setTimeoutから呼び出された関数上で1つのバインドだけを取り除くことができると思います。バインディングWaitAndSayHelloは不要です。あなたは次の男のためにあなたの答えを更新したいかもしれません。 – mikemaccana