私は次のコードを見てきました...
var xhr = $.ajax({...});
xhr && xhr.abort && xhr.abort();
ok(xhr, "XHR object is not null or undefined");
2行目の意味を理解するのに苦労していますxhr && xhr.abort && xhr.abort();
意味を理解したいのでよろしくお願いします。
の定義ok( bool , string )
私は次のコードを見てきました...
var xhr = $.ajax({...});
xhr && xhr.abort && xhr.abort();
ok(xhr, "XHR object is not null or undefined");
2行目の意味を理解するのに苦労していますxhr && xhr.abort && xhr.abort();
意味を理解したいのでよろしくお願いします。
の定義ok( bool , string )
xhr && xhr.abort && xhr.abort();
のように書き直せる
if (xhr) {
if (xhr.abort) {
xhr.abort();
}
}
つまり、xhr
が定義されている (「偽」ではない) 場合、およびキーが定義されている場合xhr
は、abort
xhr.abort();
行が代わりにあった場合:
xhr.abort();
xhr
がの場合undefined
、 aReferenceError
がスローされます。xhr.abort
が関数 (またはundefined
) でない場合、 aTypeError
がスローされます。
2 行目は次と同等です。
if (xhr && xhr.abort && typeof xhr.abort === 'function') {
xhr.abort();
}
前のQUnit
ステートメントの最初の部分が失敗した場合、チェックは失敗します (xhr が定義されていないか、定義されていたことを意味しますnull
)。