私は小さなjQueryのようなライブラリを作成していますが、奇妙なことに、の動作が1つあり$.each
ます。
javascriptにはfor...in
ループがあります:
for (var key in obj) {
console.log(key + ': ' + obj[key]);
}
これに伴う問題は、継承されたプロパティ、つまりオブジェクトコンストラクタのプロトタイプからのプロパティも繰り返されることです。
hasOwnProperty
たとえば、これを使用してこれを知ることができます。そして、jQueryはそれを行うことができます。
ただし、オブジェクトをに渡すと、オブジェクトはとまったく同じよう$.each
に動作し、継承されたプロパティも繰り返し処理されます。また、わずかに遅くなるはずであり、入力するにはさらに数文字が必要です。for...in
このフィドルをチェックして実際の動作を確認し、ここでのソースコードを探してください$.each
。
だから私の質問は、独自のプロパティのみを含むjQueryのオブジェクト反復メソッドはありますか?そうでない場合、ライブラリはこのように動作する必要がありますか?
編集: jQueryはこれを行わないので、これが役立つかどうかも答えることができます。つまり、プロトタイプのプロパティを繰り返し処理したいと思っていることはわかりませんが、何かが足りないのかもしれません。