在自身的理解中,這幾個概念是分不開的,不能脫離一種去了解另外一種。在網上看到很多資料,但是每個人對於他們的理解可能有些不同,而且發現對某些概念網上的資料有的並沒有說清楚,所以本人寫了這篇文章,希望能夠對讀者產生一點作用、
1.首先要介紹js中的構造函數
//基於工廠模式創建函數
//1.原料 2.加工 3.出廠
function person(name,age){
//相當於原料
var obj=new Object();
//對原料進行加工
obj.name=name;
obj.age=age;
//產品出廠
return obj;
}
//定義變量來使用
var p1=person("aa",14);
//基於工廠模式創建函數
//1.原料 2.加工 3.出廠
function person(name,age){
//相當於原料
// var obj=new Object();
this.name=name;
this.age=age;
//對原料進行加工
// obj.name=name;
// obj.age=age;
//產品出廠
// return obj;
}
//定義變量來使用
var p1=new person("aa",14);
console.log(p1.name);
仔細觀察代碼和上一次代碼的不同:1.函數內部沒有使用new來創建新對象;2.並且函數沒有return返回值;3.在使用的時候使用了new person()來創建新對象。需要注意:在使用this的時候爲什麼可以不用在函數內部創建新對象,爲什麼可以不用返回return。 function Person(name,age){
this.name=name;
this.age=age;
}
//定義變量來使用
var p1=new Person("aa",14);
console.log(p1.name);