2

重複の可能性:
removeChildに親ノードが必要なのはなぜですか?

ノード要素を削除するクロスブラウザの方法は、removeChild()メソッドを使用することです。ただし、この方法では、ノードの親を次のように正確にする必要があります。

myNodeToRemove.parentNode.removeChild(myNodeToRemove);

なぜブラウザは次のようなよりオブジェクト指向の方法でremoveメソッドを実装しなかったのですか?

myNodeToRemove.remove();

次のように開始remove()するメソッドを使用します。

function remove(){
  var parentNode = this.parentNode;
  ....
}

実際、この方法を使用すると、ノードの親を手動で取得する必要はありません。

4

2 に答える 2

1

質問の場合:

なぜブラウザはこのようなよりオブジェクト指向の方法でremoveメソッドを実装しなかったのですか?

myNodeToRemove.remove();

... Javascriptの歴史、言語がどのように生まれたか、APIがどのように生まれたかなどを研究する必要があります。次に、私たちがどのようにしてモダンウェブと呼ばれるclusterfuckにたどり着いたかを理解します。歴史は陽気です。

開始するのに適した場所は、JavascriptビデオでCro​​ckfordを視聴することです。

http://javascript.crockford.com/#video

また、関数の命名とオブジェクト指向の実践に関して、これは良いビデオです:

http://vimeo.com/43380467

于 2012-11-10T22:27:58.073 に答える
0

parentNode と removeChild の組み合わせを使用する理由は、削除したいコンテナーの実際の親で removeChild メソッドを参照していることを保証すると思います。

于 2012-11-10T19:29:49.390 に答える