• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    Chrome中JSON.parse的特殊實現(xiàn)_json

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 20:56:47
    文檔

    Chrome中JSON.parse的特殊實現(xiàn)_json

    Chrome中JSON.parse的特殊實現(xiàn)_json:IE8/Firefox3.5+/Chrome4/Safari4/Opera10 已實現(xiàn)該方法。使用方式很簡單: 代碼如下: var str = '{name:jack}'; var json = JSON.parse(str); alert(json.name); 在以上實現(xiàn)該方法的瀏覽器中都會彈出jack。 如果給Obj
    推薦度:
    導(dǎo)讀Chrome中JSON.parse的特殊實現(xiàn)_json:IE8/Firefox3.5+/Chrome4/Safari4/Opera10 已實現(xiàn)該方法。使用方式很簡單: 代碼如下: var str = '{name:jack}'; var json = JSON.parse(str); alert(json.name); 在以上實現(xiàn)該方法的瀏覽器中都會彈出jack。 如果給Obj

    IE8/Firefox3.5+/Chrome4/Safari4/Opera10 已實現(xiàn)該方法。使用方式很簡單:
    代碼如下:
    var str = '{"name":"jack"}';
    var json = JSON.parse(str);
    alert(json.name);

    在以上實現(xiàn)該方法的瀏覽器中都會彈出“jack”。
    如果給Object.prototype添加一個解析json的方法(某人可能會強烈反對這么干污染了原生對象,這里純粹為了討論)
    代碼如下:
    Object.prototype.parseJSON = function () {
    return JSON.parse(this);
    }

    因為所有的對象都繼承了Object的方法,這時候可以直接這么用了,
    代碼如下:
    var str = '{"name":"jack"}';
    var json = str.parseJSON();
    alert(json.name);

    str.parseJSON()時,parseJSON內(nèi)部的this就指向了str。這時候并非所有瀏覽器都能解析成功。

    IE8/Firefox/Safari/Opera仍然會彈出“jack”,Chrome中則報錯了:Uncaught illegal access。
    為什么這樣寫Chrome就不支持呢?比較兩種方式,傳給JSON.parse的參數(shù)一個是字符串str,一個是this。貌似這兩個沒區(qū)別?
    當(dāng)str.parseJSON()時,parseJSON內(nèi)部的this指向了應(yīng)該就是str。修改下parseJSON方法:
    代碼如下:
    Object.prototype.parseJSON = function () {
    alert(typeof this);
    return JSON.parse(this);
    };

    重新執(zhí)行,可以發(fā)現(xiàn)parseJSON彈出的是object,可能這就是區(qū)別了。直接new一個字符串就能看到明顯的效果了
    代碼如下:
    var js = JSON.parse(new String('{"name":"jack"}'));
    alert(js.name);

    以上代碼除Chrome報錯外,其它瀏覽器均執(zhí)行正常。
    基本得出結(jié)論:
    Chrome中,JSON.parse的第一個參數(shù)只能是字符串,不能是對象(包括new String方式也不支持)
    再回到上面給Object.prototype添加一個解析json的方法,如果要兼容所有瀏覽器,可以這么寫:
    代碼如下:
    Object.prototype.parseJSON = function () {
    return JSON.parse(this.toString());
    }
    var str = '{"name":"jack"}';
    var json = str.parseJSON();
    alert(json.name);

    2010-10-09 : 該BUG在Chrome6中已經(jīng)修復(fù).

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Chrome中JSON.parse的特殊實現(xiàn)_json

    Chrome中JSON.parse的特殊實現(xiàn)_json:IE8/Firefox3.5+/Chrome4/Safari4/Opera10 已實現(xiàn)該方法。使用方式很簡單: 代碼如下: var str = '{name:jack}'; var json = JSON.parse(str); alert(json.name); 在以上實現(xiàn)該方法的瀏覽器中都會彈出jack。 如果給Obj
    推薦度:
    標簽: chrome chr json
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 欧美亚洲精品在线| 久久精品18| 国产精品日日摸夜夜添夜夜添1国产精品va欧美精 | 夜夜爽一区二区三区精品| 免费精品99久久国产综合精品| 无码精品人妻一区二区三区免费看| 久久99精品免费一区二区| 99久久人人爽亚洲精品美女| 国产成人精品视频播放| 国精品无码一区二区三区在线| 伊人久久精品影院| 午夜精品一区二区三区在线视| 国产亚洲精品AA片在线观看不加载| 91精品国产91久久久久久| 国产精品视频网站| 国产国拍亚洲精品mv在线观看| 久久精品国产清高在天天线| 亚洲欧洲成人精品香蕉网| 亚洲精品和日本精品| 亚洲高清国产拍精品青青草原| 久久乐国产精品亚洲综合| 精品水蜜桃久久久久久久| 国产精品永久久久久久久久久| 国产精品人成在线观看| 国产精品狼人久久久久影院 | 国产成人1024精品免费| 四虎国产精品永久地址51| 国产福利91精品一区二区| 国产精品无码午夜福利| 久久久免费精品re6| 国内精品久久久久影院优| 国产精品拍天天在线| 国产精品人成在线播放新网站 | 99久久这里只有精品| 久久精品国产亚洲AV无码偷窥| 在线精品国产一区二区| 国产a∨精品一区二区三区不卡| 无码精品国产VA在线观看DVD| 中文字幕九七精品乱码 | 国产精品尹人在线观看| 久热这里只有精品99国产6|