這段代碼很簡單,你應(yīng)該是不明白兩個運行結(jié)果不一樣的原因,我只說明運行結(jié)果不同的原因。
成都創(chuàng)新互聯(lián)公司服務(wù)項目包括福貢網(wǎng)站建設(shè)、福貢網(wǎng)站制作、福貢網(wǎng)頁制作以及福貢網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,福貢網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到福貢省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
首先你要明白this關(guān)鍵字是與運行時環(huán)境有關(guān),和聲明時環(huán)境無關(guān)。
new test(1).fun2();這個fun2調(diào)用fun1時這句alert(tihs.m_num);這個this的運行環(huán)境是fun2,所以它代表fun2,只會彈出undefined,
new test(1).fun3();由于fun3的指針是指向fun1的,而fun1是test的一個屬性,這句alert(tihs.m_num);這個this的運行環(huán)境是test,所以它代表test,只會彈出5。
關(guān)于js中實例和對象的解釋如下:
比如定義persion如下:
var person = new Object();
var person = {};
JS 是基于原型的面向?qū)ο笳Z言, 所有數(shù)據(jù)都可以當(dāng)作對象處理,所以 person 是對象, 可以把它當(dāng)作是 Object 的實例. 當(dāng)然, 一切都是對象。
第二個采用對象字面量的方式生成的person也是如此。
然而它內(nèi)部沒有調(diào)用new Object(),而是采用JSON的初始化方式:
將現(xiàn)有的引用指向person。
實例和對象的區(qū)別,從定義上來講:
1、實例是類的具象化產(chǎn)品,
2、而對象是一個具有多種屬性的內(nèi)容結(jié)構(gòu)。
實例都是對象,而對象不全是實例。
Js里面沒有類(ES6以前)的語法,所以類的概念就通過創(chuàng)造一個對象來實現(xiàn)。
var gaga= new Gaga( "尜尜",null,"黑色");這樣就是一個對象的實例化;
實例化對象,其實就是創(chuàng)建對象過程;
要用一個類中的一個方法。如果這個類是靜態(tài)類,那么ok,可以直接調(diào)用這個方法。
可是如果這個類不是靜態(tài)類呢?
就需要用對象來引用這個方法了。那么對象如何來呢?就需要new一下了。
例:B類要調(diào)用,A類中的 gaga()方法。
那么在調(diào)用干這個方法之前,必須要要創(chuàng)建A的對象。
A a = new Gaga();
a.Gaga();