JavaScript 创建对象的4种方法
所谓对象就是用来帮助你完成一些事情是,对象是有特征和行为的,是具体特指的某一个事物。使用对象可以使程序更加整洁
-
通过Object()方法来创建
Object()是JavaScript内部的对象,使用Object创建对象的语法:
我们通过Object创建的一个Dog对象,这个对象有name,color,eat属性;并且给这个对象定义了两个方法,因此我们想用这两个方法时可以直接通过 Dog.describe() Dog.language() 来访问,即 对象.方法
注意:注意这里不能用this.name 应该用Dog.name因为Object()是一个对象,我们的Dog也是创建出来的一个对象,所以用this会是undefined,但是Dog这个describe()方法中使用this就可以,因为是用过这个Dog对象构造出来的函数 -
同过字面量法创建对象
var 对象={name:“小明”,age:20,sex:“男”…} 这是字面量表示法的语法 ,缺点:一次性对象,不方便修改,不利于提高效率,一般不建议使用
优化版的创建对象,对象中的属性都是在一个整体中,便于访问加粗样式 -
通过自定义函数创建对象:就是自己定义一个函数,然后赋予它对象的思想。这个函数的名字首字母需要是大写的
要创建Image的新实例,必须要使用new 操作符。以这种方式调用构造函数实际上会经历一下4个步骤
(1)创建一个新对象,在内存中开辟一个空闲的空间
(2)将构造函数的作用域个给新对象(因此this就指向了这个新对象)
(3)执行构造函数中的代码(为这个新对象添加属性)
(4)返回新对象
优点:提高代码复用率,代码可以灵活调用,方便修改,自己传的参数是什么就是什么, 既解决的重复实例化的问题又解决了对象识别的问题
缺点:没有显示的创建对象,直接将属性和方法赋给了this对象,没有return语句 -
通过工厂模式创建对象
语法:function create 对象名() 这里我们用Object能够根据接受的参数来构建一个包含所有必要信息的 Object对象。可以无数次的调用这个函数,而每次它都会返回一个包含三个属性一个方法的对象。工厂模式虽然解决了创建多个相似对象的问题,但是却没有解决对象识别的问题(即怎样知道一个对象的类型)