在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 代碼替換,看教學(xué)視頻用的代碼1,自己認(rèn)為代碼2就可以解決。

代碼替換,看教學(xué)視頻用的代碼1,自己認(rèn)為代碼2就可以解決。

代碼1:

var xhr = null;
if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
} else {
    xhr = new ActiveXObject('Microsoft.XMLHTTP');
}

能使用代碼2:

var xhr = new XMLHttpRequest()||new ActiveXObject('Microsoft.XMLHTTP')

替換嗎?我感覺意思一樣,不知可否?代碼1寫的比較多是否我有沒考慮的情況?

回答
編輯回答
久愛她

new name()這個是直接拿來用了 如果沒有name這個方法肯定報錯
就相當(dāng)于 var str = a || "abc" 這里a根本就沒定義就會報錯
但是,我試了一下用ie11模擬ie低版本,連ie5都有XMLHttpRequest這個東西,所以你這樣寫是不會報錯的,永遠(yuǎn)走的是new XMLHttpRequest

2017年5月30日 06:57
編輯回答
不討囍

不能。如果window.XMLHttpRequest不存在的話,你代碼里面new XMLHttpRequest()直接就報錯了。

2017年12月2日 04:48
編輯回答
吢涼

如同innlym的答案,你的代碼如果在IE瀏覽器中運(yùn)行的話,會報錯。我把這句代碼改成var xhr = new ActiveXObject('Microsoft.XMLHTTP')|| new XMLHttpRequest()在chrome中運(yùn)行,也會報錯。因?yàn)樵赾hrome中,沒有ActiveXObject這個對象。所以是報錯,而不是輸出false。
圖片描述

2017年5月8日 06:00
編輯回答
遺莣
var xhr = new XMLHttpRequest()||new ActiveXObject('Microsoft.XMLHTTP');

這種寫法明顯會出錯,XMLHttpRequest
就像是如下結(jié)果

{
    const B = function(){};
    var test = new A() || new B();
}

如果A沒有被定義會返回A is not defined
此時運(yùn)行 new A() 無疑是錯上加錯。

如果你真的想使用簡寫,可以這么寫:

var xhr = window.XMLHttpRequest && new XMLHttpRequest() || window.ActiveXObject && new ActiveXObject('Microsoft.XMLHTTP');
2018年2月10日 12:30