1. 程式人生 > >js-----new一個對象的過程

js-----new一個對象的過程

註意 初始化 num 一個 ons var UNC spa boolean

使用new關鍵字調用函數(new Person(…))的具體步驟:

1. 創建空對象;
  var obj = {};

2. 完成原型鏈的構建

  設置新對象的constructor屬性為構造函數的名稱,設置新對象的__proto__屬性指向構造函數的prototype對象;
  obj.__proto__ = Person.prototype;

3.改變this的指向

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

4.執行函數裏的代碼

5
. 將初始化完畢的新對象地址,保存到等號左邊的變量中 註意:若構造函數中返回this或返回值是基本類型(number、string、boolean、null、undefined)的值,則返回新實例對象; 若返回值是引用類型的值,則實際返回值為這個引用類型。

<script>
  function Person(name, age) {
    this.name = name;
    this.age = age;
  }
  Person.prototype.eate = function () {
    return
this.name + "在吃飯" } var p1 = new Person("小明", 18); alert(p1.eate()) </script>

js-----new一個對象的過程