1

通常、for..in悪名高い警告の解決策は、次のようなものです。

for(var prop in obj) {
    if(obj.hasOwnProperty(prop)) {
        foo(); bar(); baz();
    }
}

私はそれがただするほうがきれいだと思います:

for(var prop in obj) {
    if(!obj.hasOwnProperty(prop)) continue;
}

問題は...それらは機能的に同一ではありませんか?

4

2 に答える 2

4

それらは機能的に同一です。限目。

スタイルの問題に関しては、ダグラスと彼のJSLintは次のように述べていますcontinue

continueステートメントの使用は避けてください。関数の制御フローがわかりにくくなる傾向があります。

http://javascript.crockford.com/code.htmlを参照して、「続行」を検索してください

于 2012-11-19T15:17:02.183 に答える
1

はい、機能的には同じです。


ただし、continue-lessの例はもう少しセマンティックだと思います。

最初の例では、ifのブール値を否定していないので、}
if(property){"Execute the rest of this loop"}
の代わりに典型的なものがあります。
if(not property){"Do not execute the rest of this loop"

于 2012-11-19T15:16:30.137 に答える