Object.is()方法確定兩個值是否具有相同的 值。爲什麼在比較2個「確切」JavaScript對象值時,Object.is()返回false?
返回值:一個布爾值,指示兩個參數 的值是否相同。
Object.is('hello', 'hello'); // true Object.is(1, 1); // true Object.is(null, null); // true
我也看到了MDN,我可以用「窗口」對象一樣使用它:
Object.is(window, window); // true
當我試圖
我可以用簡單的類型,如測試Object.is()
比較兩個簡單的「確切」值,它似乎不工作(或者我可能以錯誤的方式使用它)
有這2個簡單的目標cts:
var o1 = {a: "a"};
var o2 = {a: "a"};
所有這些比較返回false!
Object.is(o1, o2); // false
Object.is(o1, {a: "a"}); // false
Object.is({a: "a"}, {a: "a"}); // false
您可以通過解釋爲什麼幫忙,結果是假的,不然我如何以錯誤的方式使用Object.is()
?
因爲它們不是同一個對象。 'var o1 = {a:「a」}; var o2 = o1; Object.is(o1,o2);' – epascarello
請參閱[MDN]上的此表(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#A_model_for_understanding_equality_comparisons) – barbsan