new過程發(fā)生了什么

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

  2. 設置新對象的constructor屬性為構造函數(shù)的名稱,設置新對象的proto屬性指向構造函數(shù)的prototype對象;
      obj.proto = ClassA.prototype;
    擴展了新對象的原型鏈。

  3. 使用新對象調用函數(shù),函數(shù)中的this被指向新實例對象:
      ClassA.call(obj);  //{}.構造函數(shù)();

4.返回this指針。當存在顯示的返回時,返回return后面的內容。新建的空對象作廢。

function test() {
this.name = "test";
}
test.prototype = {
a:{},
b:{}
}

var c = new test();

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • ECMAScript關鍵字 delete do else finally function in instance...
    doudou2閱讀 726評論 0 0
  • 我基本從來不寫工作的事兒。 因為工作實在沒啥好寫的,不就是工作唄。 然後今天打算稍微寫一點,就寫JS吧。 我一直相...
    LostAbaddon閱讀 1,462評論 22 21
  • 一、JavaScript基礎知識回顧 1.1 JavaScript 1.1.1 javascript是什么? Ja...
    福爾摩雞閱讀 1,339評論 0 7
  • 有些人希望被人關注,有些人呢,希望躲在角落,不被人關注。而我,是後者。 很早開始,上課喜歡坐在後排靠窗過靠墻,聚會...
    nicohug閱讀 139評論 0 0
  • 你說的對,對于我弟弟,我和家里人的確得放開手,讓他獨立讓他自己承擔生活的困苦,這道理是沒有錯。 但是別拿你的性格來...
    卿卿九閱讀 423評論 0 1