構造函數,實例,原型,以及原型鏈

1,建立對象的方式:編程

(1)字面量:例如var o1={name:'o1'};編程語言

(2)用構造函數建立對象:   var M=function( ){ this.name='o1'} var o2=new M( );函數

  (3)   object .create :var p={ name:'o3'}; var o3=Object.create(p);this

1.構造函數的定義:prototype

  不一樣於其它的主流編程語言,JavaScript的構造函數並非做爲類的一個特定方法存在的;當任意一個普通函數用於建立一類對象時,它就被稱做構造函數,或構造器。一個函數要做爲一個真正意義上的構造函數,須要知足下列條件:3d

     ( 1) 、  在函數內部對新對象(this)的屬性進行設置,一般是添加屬性和方法。指針

     (2)、  構造函數能夠包含返回語句(不推薦),但返回值必須是this,或者其它非對象類型的值。code

2.構造函數的意義:對象

         用字面量建立對象,每建立一個新的對象都須要寫出完整的定義語句,不便於建立大量相同類型的對象,不利於使用繼承等高級特性。blog

        new表達式是配合構造函數使用的,例如new String(「a string」),調用內置的String函數構造了一個字符串對象。下面咱們用構造函數的方式來從新建立一個實現一樣功能的對象,首先是定義構造函數,而後是調用new表達式;

 

3.在使用new操做符來調用一個構造函數的時候,發生了什麼呢?

  1. 新生成了一個對象
  2. 連接到原型
  3. 綁定 this
  4. 返回新對象

 

4.原型:

prototype

每建立一個對象都有一個prototype(原型)屬性,這個屬性是一個指針,指向一個對象(這個對象的用途是包含能夠由特定類型的全部實例共享的屬性和方法)prototype就是經過調用構造函數而建立的那個對象實例的原型對象。使用構造函數的好處就是:能夠讓全部對象實例共享它所包含的屬性和方法。

4.原型鏈:基本思想就是利用原型讓一個引用類型繼承另外一個引用類型的屬性和方法

5.原型的規則:

相關文章
相關標籤/搜索