1. 程式人生 > >javascript的建構函式和例項物件、prototype和__proto__的區別,原型物件及構造器的理解

javascript的建構函式和例項物件、prototype和__proto__的區別,原型物件及構造器的理解

一、前言

  我們先通過程式碼來分別打印出例項物件、建構函式,以及修改了原型物件的建構函式,通過對比內部結構來看看他們之間的區別。

//定義建構函式
function Person(name, age){
    this.name = name; 
    this.age = age;
    this.play = function(){
          console.log('玩好玩的')
    }
}
//例項化物件,並初始化賦值
var per = new Person('kitty', '3');

//列印例項物件
console.dir(per);
//列印建構函式
console.dir(Person)

 

我們建立的每一個函式都會有一個原型(prototype)屬性,這個屬性是一個指標,指向函式的原型(prototype)物件。使用原型物件可以讓建構函式的例項物件共享原型物件包含的屬性和方法,而不會像工廠模式或者建構函式模式那樣,方法本應該是可以是通用的,可是每一個建立的物件例項都要各自複製一份