問題タブ [function-constructor]

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 投票する
2 に答える
91 参照

javascript - Javascript のコンストラクター関数が機能しない

5 つのプロパティを求めるプロンプトを表示し、テスト スコアを取得してテスト 1、2、および 3 の平均を取得し、名前と平均を表示する必要があります。関数を表示または実行することはできません。コードの何が問題になっていますか?

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

javascript - Function で作成されたこれらの関数の違いは何ですか?

1.var f = new Function("a", "b", "return a+b")

2.var f2 = Function("a", "b", "return a+b")

ff2どちらも無名関数です。f(1,2)両方とも をf2(1,2)返します3。では、両者の間に実際の内部的な違いはありますか? Function内部的に関数オブジェクトを返しますか? Functionas コンストラクターの使用との違いはnew Function(...)?

0 投票する
3 に答える
94 参照

javascript - コンストラクターを使用してオブジェクトを作成する場合とオブジェクトを返す場合に違いはありますか?

これらの機能の動作に違いはありますか? 最初のものは、コンストラクターについて考えるときに私が考えるより典型的なものです。

例 1:これを使用して名前を付け、プロパティを設定します。次に、new を使用して新しい Book オブジェクトを作成します。

例 2: newを使用してオブジェクトを返し、関数自体を呼び出すだけです。

私が理解しようとしているのは、これらがオブジェクトを作成する方法が異なるかどうかだと思いますか? もしそうなら、一方が他方より優れていますか?一方が他方よりもうまく機能するさまざまな状況はありますか?

0 投票する
3 に答える
838 参照

javascript - JavaScript コンストラクター関数、プロトタイプ アタッチ メソッド、および「this」

私は CodeAcademy JS の演習に取り組んでおり、この例について質問があります。

このコードの私の理解は次のとおりです。

  1. Animal()JS は、関数 (関数コンストラクター)の呼び出し前に new キーワードを使用した結果として、var dog が指す新しい Animal オブジェクト インスタンスを作成します。
  2. var dog オブジェクトのプロトタイプには、sayName()次の行にメソッドが関連付けられています。Animal.prototype.sayName = function()
  3. sayName()がクラスにアタッチされているため、関数コンストラクターを使用してクラスprototypeから作成されたすべてのオブジェクトでメソッドを使用できるようになりましたAnimalnew Animal()

これは、このコードで何が起こっているかを正しく理解していますか?

thisまた、次の動物オブジェクトをどのように指すかを理解しようとしていますthis.name:

Animal.prototype実際のオブジェクトを指していない:prototypeこのAnimalオブジェクト インスタンスのオブジェクト? もしそうなら、実際には から呼び出されているので、thisthis.name指すべきではありませんか?Animal.prototypesayName()Animal.prototype

のコンテキストについての私の理解は、関数を呼び出すオブジェクトthisthis常に指しているということです。ただし、この場合、dog.sayName()が呼び出されたときに をthis指し、コンソールに記録されたときにAnimalどのようthis.nameに等しいかを示します。'Barker'Animal.prototype がプロトタイプ オブジェクトを指していることを誤解しているかdog.sayName()thisまたはprototype.

この小さな例には複数の質問がありますが、ここで何が起こっているかを正確に把握することは、これらの基本的な概念を理解するのに本当に役立ちます。

0 投票する
3 に答える
165 参照

javascript - Javascript関数コンストラクターを使用して各ボックスにクリックアラートを追加するには?

HTML コード:

ここにCSSコード:

ここでオブジェクト リテラル構文を使用する JavaScript コード : // box2 と box3 に同じ効果を適用したい