js new做了什么

轉(zhuǎn)載自 https://www.cnblogs.com/liveoutfun/p/8735992.html

       學過JS的都知道 創(chuàng)建對象可以這樣

        var obj=new Object();

        var obj=new Function();

         用內(nèi)置的函數(shù)對象來構(gòu)造對象

         還可以這樣自定義函數(shù)

          function test(){}

         var baby=new test();

         于是這時候有了一個疑問

         console.log(typeof test);//function

         返回的是一個function類型

          console.log(typeof baby);//object

         為什么這樣捏唤衫?

         那就是new 在搞事情唄,baby是object類型婆赠,那不就是說,后臺創(chuàng)建了一個對象并且賦給了baby

        讓我們在test函數(shù)里面加點佐料繼續(xù)驗證

         function test(name){

         this.name=name;

         this.say=function(){

         return this.name+"吹牛逼說自己最帥"佳励!

 }

           }

var baby=new test("xjz");

console.log(baby.name);//xjz

console.log(baby.say());//xjz吹牛逼說自己最帥休里!

//屬性和方法都添加到自動創(chuàng)建的那個對象身上了

到現(xiàn)在為止new 干了三件事

1.var obj={};//創(chuàng)建一個對象

2.this.name=name;this.say=funcion(){return this.name+"吹牛逼說自己最帥!"};

在普通函數(shù)里面的this是window對象

所以得改變this指向來給obj添加屬性和方法 test.call(obj); 吧test函數(shù)里面的this改變成obj

所以你this.name=name 不就是 obj.name=name; 這樣明白了吧G臁!

3 把obj的地址賦值給等式左邊的變量

接下來得需要原型鏈方面的知識了妙黍,我后續(xù)后寫原型鏈方面的知識悴侵。

1.function出來的函數(shù)會自動添加一個prototype原型對象( 他上面的屬性和方法只有一份并且所有實例共享)

2.object對象都有內(nèi)置的原型對象proto注意是兩個_(我在這里吃過虧哈哈)

3.并且obj.proto指向它的構(gòu)造函數(shù)的prototype對象

4.obj.proto就是一個(地址)根據(jù)它可以找到它構(gòu)造函數(shù)的prototype對象

obj.proto=itsConstructor.prototype;//itsConstructor(它的構(gòu)造函數(shù)的意思)

5.這樣當obj的里面沒有你想要的屬性和方法的時候,它會順著原型鏈一級一級向上查找拭嫁,直到找到你想要的方法時或者為null時才停止

6這里介紹下吧 如果不了解原型鏈這個東西會一臉懵逼吧

假設(shè) console.log(baby.run());

baby里是沒有run方法的

然后會根據(jù)baby.proto找到baby.prototype(依然沒有)

因為prototype也是對象(你們typeof一下就知道了)所以也有proto屬性

baby.prototype.proto----->找到了Object.prototype(依然沒有)

因為prototype是對象 當然是Object構(gòu)造的了 Object.prototype是所有對象的祖先

Object.prototype.proto==null 到此為止原型鏈終止

讓我們給prototype對象添加一個方法畜挨,如果能使用就說明baby.proro=test.prototype;

test.prototype.look=function(){

return this.name+"正在看美女!";

}

console.log(baby.look());//xjz正在看美女 成功訪問到了

于是乎 new 很神奇的就干了這件事

obj.proto=test.prototype;

于是那句話obj.proto指向它的構(gòu)造函數(shù)的prototype對象這個概念就知道怎么來的了

實在new的過程實現(xiàn)的

所以綜上所述

new 干了四件事

1.var obj={};

2.obj.proto=test.prototype;

3.test.call(obj);

4把obj的地址賦值給等式左邊的變量

我認為new的意義在于節(jié)省代碼噩凹,相當于語法糖,還有就是它可以擁使用構(gòu)造函數(shù)里面的所有屬性和方法

并且還可以擴展毡咏。

也不知道看了的人能不能明白驮宴。。呕缭。你得看原型和原型鏈 要不不會很理解的

this和作用域也可以看看

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末堵泽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子恢总,更是在濱河造成了極大的恐慌迎罗,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件片仿,死亡現(xiàn)場離奇詭異纹安,居然都是意外死亡,警方通過查閱死者的電腦和手機砂豌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門厢岂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阳距,你說我怎么就攤上這事塔粒。” “怎么了筐摘?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵卒茬,是天一觀的道長。 經(jīng)常有香客問我咖熟,道長圃酵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任馍管,我火速辦了婚禮辜昵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咽斧。我一直安慰自己堪置,他們只是感情好躬存,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著舀锨,像睡著了一般岭洲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坎匿,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天盾剩,我揣著相機與錄音,去河邊找鬼替蔬。 笑死告私,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的承桥。 我是一名探鬼主播驻粟,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼凶异!你這毒婦竟也來了蜀撑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤剩彬,失蹤者是張志新(化名)和其女友劉穎酷麦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喉恋,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡沃饶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轻黑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绍坝。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖苔悦,靈堂內(nèi)的尸體忽然破棺而出轩褐,到底是詐尸還是另有隱情,我是刑警寧澤玖详,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布把介,位于F島的核電站,受9級特大地震影響蟋座,放射性物質(zhì)發(fā)生泄漏拗踢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一向臀、第九天 我趴在偏房一處隱蔽的房頂上張望巢墅。 院中可真熱鬧,春花似錦、人聲如沸君纫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蓄髓。三九已至叉庐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間会喝,已是汗流浹背陡叠。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肢执,地道東北人枉阵。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像预茄,于是被迫代替她去往敵國和親兴溜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容