首先,JS是一門基於對象的語言,不是面向對象語言,因為他的語法中沒有Class(類)
JS雖然不是面向對象的語言,但是可以模擬面向對象語言的編程思想
1.通過new的方式(系統對象)
var obj=new Object(); var arr=new Array(); var str=new String();
2.字面量的方式
var obj={ name:"小明", age:20, eat:function(){ console.log("吃") } }
3.自定義構造函數創建對象
function Person(name,age){ this.name=name; this.age=age; this.eat=function(){ console.log("吃"); } }
3.1實例化對象
var man = new Person("小明",20);
在這個實例化過程中發生了四件事:
(1)開辟內存空間,把創建的新對象存儲起來
(2)把this設置為當前對象
(3)設置屬相和方法的值
(4)返回當前對象
4.工廠模式創建對象
//我們將他封裝成一個函數 function createObj(name,age){ var obj=new Object(); obj.name=name; obj.age=age; return obj; }
4.1大批量創建對象
var man1=createObj("小明",20); var man2=createObj("小明",20); var man3=createObj("小明",20); var man4=createObj("小明",20); var man5=createObj("小明",20);
4.2優缺點:
優點:可用於大批量創建對象
缺點:一種數據類型