JavaScript创建对象

来源:互联网 发布:套淘宝保证金最新模式 编辑:程序博客网 时间:2024/06/05 01:44

一、创建单个对象

方式一:Object构造函数--->var o=new Object();o.key=value;...

方式二:对象字面量--->{"key":"value",...}

方式一和二缺点:使用相同的接口创建很多对象会产生大量重复代码,使用方式三解决

方式三:工厂模式--->使用函数封装以特定接口创建对象的细节

function createObject(param1,param2,...){

Object o =new Object();

o.param1=param1;

o.param2=param2;

...

return o;

}

方式三缺点:无法识别对象的类型,使用二--->方式一解决

二、创建特定类型对象

方式一:构造函数模式--->创建自定义的构造函数,自定义对象类型的属性和方法,构造函数与普通函数的区别是构造函数使用new关键字调用来创建对象,这种创建方式会经历4个步骤--->①创建一个新对象②将构造函数的作用域(this)赋给新对象(如果是在全局范围内调用普通函数this指向的是window)③执行构造函数中的代码(添加属性和方法)④返回新对象

function CreateObject(param1,param2,...){

this.param1=param1;//this表示公开属性

var param2=param2;//var表示私有属性

...

}

var o=new CreateObject(param1,param2...)

方式一缺点:每次创建的对象中方法会重复创建,因为函数也是对象,使用方式二解决

方式二:原型模式--->每个函数都有一个原型属性prototype指针指向包含所有对象共享的属性和方法的原型对象

CreateObject.prototype.param3=...

方式二缺点:当原型对象的共享属性为引用类型属性时,实例修改该属性值将会覆盖原型对象中原有引用类型属性值,使用方式三解决

方式三:组合使用构造函数模式和原型模式--->创建自定义类型最常见的方式,构造函数模式用于定义实例属性而原型模式用于定义方法和共享的属性



0 0
原创粉丝点击