問題タブ [self-executing-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
40 参照

javascript - 関数を実行するにはどうすればよいですか?

以下のスクリプトを書きました。私のhtmlエディタでは問題なく動作します。しかし、実際の Web サイトで表示すると、関数が実行されず、innerHTML が空白で表示されます。どうすれば修正できますか?この問題は、自己実行機能について確認する必要があるものですか?

0 投票する
1 に答える
392 参照

javascript - IIFE 内のコンストラクターへのアクセス

JavaScript では、コンストラクター関数を含む、すぐに呼び出される無名関数をよく見かけます。このようなもの:

クロージャ (?) を作成するため、これは有益に思えます。そのため、関数内の変数をグローバル スコープから分離しておくことができます。私が理解できないのは、グローバル スコープ内からこのコンストラクターにアクセスする方法です。たとえば、上記のコードが JavaScript ファイルに含まれており、script タグを使用して HTML ドキュメントに取り込まれたとします。さて、ドキュメント (別の script タグ内) で、無名関数のコンストラクターを使用してオブジェクトをインスタンス化するにはどうすればよいでしょうか?

0 投票する
1 に答える
3382 参照

javascript - NodeJS - 自己実行関数でコンストラクタをmodule.exportsに割り当てる方法は?

NodeJS の自己実行関数にコンストラクターを割り当てようとしています。私のパラメーターはmodule.exportsを指す変数であるため、機能していないと確信していますが、できるだけ自己実行形式に近づけながら機能させる方法があるかどうか知りたいです。

コードの呼び出し方法は次のとおりです...

正常に動作するコードの例を次に示します...

これが私が使用したいコードスタイルの例ですが、実際にはmodule.exportsに割り当てていないため、「TypeError:オブジェクトは関数ではありません」というエラーが発生します。に。

上記の自己実行形式を使用して、モジュールにコンストラクターをエクスポートさせる方法はありますか?

0 投票する
1 に答える
102 参照

javascript - 自己実行型無名関数で未定義の TypeError を排除する

次のエラーを表示するスクリプトがあります: ' TypeError: clickables[ic] is undefined ' Firebug/ブラウザ コンソールでチェックすると。私はバニラJavaScriptで物事を行う方法を学ぼうとしているJavaScriptの初心者です。そのため、まさにその解決策を具体的に探しています。

質問: 未定義の TypeError を取り除く/黙らせるにはどうすればよいですか?

スクリプトが行うべきこと:

これを使用して、表示属性が none に設定されている非表示の要素を明らかにします。スクリプトは、ドキュメント内の特定のクラスのすべてのインスタンス.item-reveal を取得し、そのクラスを持つ各アイテムに与えられた一意の ID と結合して、 getElementsByClassNameを介して検索する新しいクラスを形成する必要があります。.item-revealを持つアイテムクラスはクリックされる項目であり、非表示/表示される項目には .ID-reveal-item クラスがあります (クリック可能な要素の一意の ID の後に .item-reveal クラス名が逆になっています)。ID はスタイリングにはまったく使用されません。要素の任意のペアに適用できる命名規則に基づいて一意のクラスを作成するだけです。表示属性のスタイル。

スクリプトの機能:

現在、スクリプトは実際に onclick でアイテムを表示し、その後のクリックでそれらを再度非表示にし、複数のアイテムで動作します。したがって、基本的には機能します。「TypeError: clickables[ic] is undefined」の問題とそれを取り除く方法がわかりません。開発者ツールを使用すると、いくつかのブラウザーで取得できます。

このスクリプトは、自己実行型の匿名関数のようなものを試みているため、慣例が少し異なることはわかっていますが、将来的に他の用途に適用できるように、それを使い続けたいと考えています。それを刺激した記事はここにあります:

http://esbueno.noahstokes.com/post/77292606977/self-executing-anonymous-functions-or-how-to-write

例:

HTML


CSS


JavaScript:

スクリプトは、BODY 終了タグの直前の SCRIPT タグを介してリンクされます。Async 属性と Defer 属性の両方で、HTML ドキュメント内の他のスクリプトの有無にかかわらず試してみましたが、結果は同じです。イベントハンドラーを追加して、DOM の読み込みがまだ進行中のものではないことを確認しようとしましたが、実際に何かを行っているかどうかを実際にテストする方法がわかりません。単体テストは、私が慣れ親しもうとしているところです。

まったく関係のない業界で数年過ごした後、スキルを磨こうとしているので、昨年は Web 開発技術に追いつき、レスポンシブ デザインと HTML5 データのことを学び、javascript を学ぼうとすることばかりでした。私はいくつかの電子ブック/本を検索し、読み、購入しましたが、これは私が理解できないことに出くわした数少ない例の 1 つです。正式なプログラミング/スクリプトの知識を持っている人にとっては、おそらく単純で明白なことだと思いますが、私は e ビジネス専攻であり、ネットワーキング、マーケティング、サーバー/システム サポート、ケーブル配線、HTML/CSS などは私が快適に過ごせる場所です。どんな助けでも大歓迎ですが、選択により、jQueryを持たない環境/プロジェクトでこれを実装しようとしていることを覚えておいてください。ありがとう!

0 投票する
2 に答える
95 参照

javascript - 自己実行コードの「this」

ここで、オブジェクトのメンバー関数内の自己実行コード (window/globalScope) で「this」が異なるのはなぜですか?

以下の出力が得られます。

func は myObj オブジェクトのメンバー関数です。その中の「this」は myObj オブジェクトでなければなりません。それでは、その内部の自己実行関数は、ウィンドウオブジェクトとして「this」をどのように持っていますか?

0 投票する
1 に答える
136 参照

javascript - 自己実行匿名関数の構文

私はしばしば、このような匿名関数を実行する JS 自己を記述します

しかし、先日、誰かのコードでこれを見ました

違いは何ですか?どちらが推奨されていますか?

0 投票する
0 に答える
54 参照

javascript - コンストラクター関数内に自己実行関数を追加する方法

次のようなコンストラクタを作成します

ここまでは問題ありませんが、新しいキーワードでこのオブジェクトを作成すると、次のようになる自己実行関数を追加したいと思います。

新しいオブジェクトを作成するときに自己実行関数を実行したい。では、どうすれば上に書いたようなことができますか

0 投票する
1 に答える
281 参照

javascript - 再帰的な JQuery/Javascript 自己実行関数 (ポーリング) での変数の設定

再帰的な自己実行 JQuery スクリプトで、変数 ( tick)に初期値を設定する必要があります。以下のスクリプトを実行しようとすると、明らかに、JSON オブジェクトが返される値ではなく、ティックが 0 に戻ります。

また、何らかの理由でtickを宣言すると、関数は最初にポーリングする前に 10 秒間待機します。関数の外でtickを宣言しようとすると、ページ上の他のすべてのスクリプトがフリーズします。

最初にページが呼び出されたときに 0 に設定され、返された JSON オブジェクトから値が取得されるようにするには、どこで tick を宣言すればよいでしょうか?

更新: Eloquent Javascript の本と 7 つの Douglas Crockford のビデオのほとんどを読んで問題が何であるかを突き止めましたが、私は Javascript がシングルスレッドであることを認識していませんでした。私は他の人のコーディングをたくさん読んできましたが、通常、彼らのスクリプトは一度実行されて次のコードに進むということは、私にはまったく思い浮かびませんでした。私の「イベントループ」は、他のスクリプトの実行を停止していました。はい、関数自体が外部に変数を持つ必要があります。

私は最終的に iFrame (非公開の単一インターフェイス アプリケーションなのでセキュリティは問題ではありません) を使用して実行し、将来のビルドのために Web ワーカーを調べました。これまでの回答に感謝します。

0 投票する
2 に答える
247 参照

javascript - JavaScript: パラメータ付き自己実行関数

CodeMirror.net は、この構成 (少し単純化しています) を使用して、JavaScript エディターのコードを導入します。

さて、これが自己実行機能であることを理解し、それらに関する多くの投稿を読みました。実際には、このコードが CodeMirror オブジェクトを作成していることを理解しています。ただ、仕組みがわかりません。

  1. パラメータ(mod)の役割は何ですか?より広い意味で、自己実行関数にパラメーターを与えるとはどういう意味ですか?
  2. 内部 function() 宣言の役割は何ですか? これは何らかの形で mod に関連しているように見えますか?

ご協力いただきありがとうございます。