js的自定義構造函數和工廠模式的區別

使用自定義構造函數創建對象

			function Person(name,age){
				this.name=name;
				this.age=age;
				this.play=function(){
					console.log("hhh")
				}
			}
			
			//創建對象-----對對象進行初始化
			var per=new Person("小紅",17);
			per.play()

總結步驟:
1、開闢空間存儲對象
2、把this設置爲當前的對象
3、設置屬性和方法的值
4、把this對象返回

使用工廠模式創建對象

			function createObject(name,age){
				var obj=new Object();
				obj.name=name;
				obj.age=age;
				obj.play=function(){
					console.log("hhhh")
				}
				return obj
			}
			var per1=createObject("小紅",13)
根據以上就能看出來,它們的共同點都是函數,都可以創建對象,都可以傳入參數

不同點是:

工廠模式:

1、函數名是小寫
2、有返回值
3、new之後的對象是當前的對象
4、直接調用函數創建對象

自定義構造函數:

1、函數名是大寫
2、沒有返回值
3、this是當前的對象
4、通過new的方式來創建對象

但平時創建對象的話都會用自定義構造函數來創建

發佈了18 篇原創文章 · 獲贊 19 · 訪問量 4166
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章