3

私は、多くの場合、すべての HTMLElements のメソッドを両方の方法で登録できました。
気になるのですが、何か違いはありますか?
ある方法を他の方法より優先する必要がありますか? それを行う正しい方法は
何ですか?

4

2 に答える 2

3

プロトタイプを使用すると、プロトタイプ チェーン内のすべてのオブジェクトで関数を使用できるようになります。基本的にクラスを拡張します。もう1つは、現在の要素にプロパティを追加するだけです。しかし、Felix が示唆するように、正しいことは、これをまったく行わないことです。

于 2011-08-27T17:11:40.150 に答える
0

JavaScript はプロトタイプ ベースの言語であり、クラス ベースの言語ではないため、キーワード.prototype.variableまたは.__proto__.variable(Math の場合) を使用してプロトタイプに直接アクセスし (クラス ベース言語のクラス定義のように)、それを変更してすべてのインスタンスに影響を与えます。プロトタイプが変更される前に作成されています。一方、プロトタイプにアクセスしない .variable は、指定されたインスタンスにのみ影響します。

つまり、「HTMLElement.prototype.someFunc =」は、すべての HTMLElement (および HTMLElement から継承するプロトタイプ) が someFunc にアクセスできるようにします。また、HTMLElement.someFunc は、HTMLELement の特定のインスタンスが someFunc にアクセスできるようにするためにのみ使用する必要があります。

于 2013-12-24T05:29:38.623 に答える