首先,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优缺点:
优点:可用于大批量创建对象
缺点:一种数据类型