[解決済み] this "変数を簡単に設定できますか?
2022-05-13 04:18:52
質問
私はJavascriptをかなり理解していますが、変数 "this"を設定する良い方法を見つけることができません。 考えてみてください。
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
var old_fn = someObj.fn; //store old value
someObj.fn = myFunction; //bind to someObj so "this" keyword works
someObj.fn();
someObj.fn = old_fn; //restore old value
最後の4行を省いてやる方法はないでしょうか? むしろ迷惑です...。 無名関数をバインドしてみましたが、これは美しく賢い方法だと思いましたが、無駄でした。
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
someObj.(function(){ fn(); })(); //fail.
明らかに、変数をmyFunctionに渡すことは選択肢の一つですが...それはこの質問のポイントではありません。
ありがとうございます。
どのように解決するのですか?
JavaScriptのすべての関数には、2つのメソッドが定義されています。
call()
と
apply()
. 関数の構文は次のようになります。
call( /* object */, /* arguments... */ );
apply(/* object */, /* arguments[] */);
これらの関数が行うことは、呼び出された関数を呼び出すことであり、その関数の値として オブジェクト パラメータに この .
var myFunction = function(){
alert(this.foo_variable);
}
myFunction.call( document.body );
関連
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
jq は html ページとデータを動的に分割する。
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] JavaScriptで変数が存在するか(定義されているか/初期化されているか)をチェックする
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] JavaScriptで変数が配列であるかどうかを確認する方法は?
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] コールバック内で正しい `this` にアクセスする方法
-
[解決済み】JavaScriptのクロージャと無名関数の比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptの関数この指摘の問題を説明
-
要素ツリー制御によるvueTreeテーブル
-
Vueの要素ツリーコントロールに破線を追加する説明
-
JavaScriptのクロージャの説明
-
vueの補間表現とv-textディレクティブの違いについて
-
Vueでルートネスティングを実装する例
-
Vueのイベント処理とイベントモディファイアの解説
-
[解決済み】ローカルファイルを開くことができません - Chrome: ローカルリソースの読み込みが許可されていない
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する