• <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)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    JavaScript中使用構(gòu)造器創(chuàng)建對(duì)象無需new的情況

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

    JavaScript中使用構(gòu)造器創(chuàng)建對(duì)象無需new的情況

    JavaScript中使用構(gòu)造器創(chuàng)建對(duì)象無需new的情況:JS中創(chuàng)建對(duì)象可以直接使用直接量的方式,這里討論的是定義一個(gè)構(gòu)造器(function)的情況。如下 function Person(name, age) { this.name = name; this.age = age;}var p = new Person('lily', 20); 發(fā)現(xiàn)某些庫(kù)代碼中
    推薦度:
    導(dǎo)讀JavaScript中使用構(gòu)造器創(chuàng)建對(duì)象無需new的情況:JS中創(chuàng)建對(duì)象可以直接使用直接量的方式,這里討論的是定義一個(gè)構(gòu)造器(function)的情況。如下 function Person(name, age) { this.name = name; this.age = age;}var p = new Person('lily', 20); 發(fā)現(xiàn)某些庫(kù)代碼中

    JS中創(chuàng)建對(duì)象可以直接使用直接量的方式,這里討論的是定義一個(gè)構(gòu)造器(function)的情況。如下
    function Person(name, age) {
    this.name = name;
    this.age = age;
    }
    var p = new Person('lily', 20);

    發(fā)現(xiàn)某些庫(kù)代碼中創(chuàng)建正則對(duì)象的方式無需new,這讓人感到奇怪。如下
    var reg = RegExp('^he$');

    測(cè)試發(fā)現(xiàn)使用或不使用new,最后返回的都是正則對(duì)象,且typeof它們都是“object”。
    var reg1 = new RegExp('^he$');
    var reg2 = RegExp('^he$');
    reg1.test('he'); // true
    reg2.test('he'); // true
    console.log(typeof reg1); // object
    console.log(typeof reg2); // object

    嗯,挺好,代碼運(yùn)行正常。
    如果這樣的話干脆就不寫new了,這么還節(jié)省了代碼量。其它類型也是這樣嗎?試試String/Number/Boolean。
    var str1 = new String(1);
    var str2 = String(1);
    var num1 = new Number('1');
    var num2 = Number('1');
    var boo1 = new Boolean(1);
    var boo2 = Boolean(1);
    console.log(typeof str1); // object
    console.log(typeof str2); // string
    console.log(typeof num1); // object
    console.log(typeof num2); // number
    console.log(typeof boo1); // object
    console.log(typeof boo2); // boolean

    可以看到,與正則的情況不同。正則無論是否new,typeof后都是object。
    但String/Number/Boolean類型,new的對(duì)象typeof返回是“object”,不new的typeof返回則是“string”。
    即不適用new的情況可以將其它類型分別轉(zhuǎn)化成字符串,數(shù)字和布爾類型。

    好了,再回到篇頭的那個(gè)Person類。即我們自己寫的類可以不用new操作符生成對(duì)象嗎?
    function Person(name, age) {
    this.name = name;
    this.age = age;
    }
    var p = Person('lily', 20);
    console.log(p); // undefined

    返回undefined,很明顯不行。因此想不用new的情況去創(chuàng)建Person實(shí)例是異想天開的。
    如果非要實(shí)現(xiàn)呢?其實(shí)也行,如下
    function Person(name, age) {
    this.name = name;
    this.age = age;
    if (this===window) {
    return new Person(name, age);
    }
    }
    var p = Person('lily', 20); // object

    稍微改造了下Person類。實(shí)際上內(nèi)部區(qū)分了下Person是作為構(gòu)造器還是函數(shù)執(zhí)行。

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

    文檔

    JavaScript中使用構(gòu)造器創(chuàng)建對(duì)象無需new的情況

    JavaScript中使用構(gòu)造器創(chuàng)建對(duì)象無需new的情況:JS中創(chuàng)建對(duì)象可以直接使用直接量的方式,這里討論的是定義一個(gè)構(gòu)造器(function)的情況。如下 function Person(name, age) { this.name = name; this.age = age;}var p = new Person('lily', 20); 發(fā)現(xiàn)某些庫(kù)代碼中
    推薦度:
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久精品久久久久久| 亚洲精品理论电影在线观看| 精品久久久久久成人AV| 合区精品久久久中文字幕一区| 四虎国产精品永久在线无码| 亚洲国产精品久久久天堂| 久久精品中文无码资源站| 大伊香蕉精品一区视频在线| 91国在线啪精品一区| 国产精品网站在线观看| 99久久99久久精品国产片| 久久精品视屏| 久久精品蜜芽亚洲国产AV| 久久线看观看精品香蕉国产| 精品国偷自产在线视频| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 99久久免费国产精品热| 久久精品视频网| 久久精品国产亚洲Aⅴ香蕉| 最新国产在线精品观看| 98视频精品全部国产| 国产午夜精品一区二区| 亚洲AV永久无码精品网站在线观看 | 精品性影院一区二区三区内射| 青青青国产依人精品视频| 无码精品人妻一区二区三区AV| 精品人伦一区二区三区潘金莲| 亚洲国产综合91精品麻豆| 亚洲欧美日韩另类精品一区二区三区| 99在线精品免费视频九九视| 国产在线精品一区二区高清不卡 | 久久99精品免费一区二区| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 国产精品无码成人午夜电影| 国产精品嫩草影院久久| 欧美性videos高清精品| 99久久99久久精品国产片| 老司机亚洲精品影院| 国产精品婷婷午夜在线观看| 久久久久女人精品毛片| 国产精品亚洲玖玖玖在线观看|