视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
js创建对象的方式及其特点
2020-11-27 19:33:29 责编:小OO
文档

js创建对象的方式有很多种,每种方式都有各自的优缺点,所以选择一个合适的创建对象的方式是很重要的,下面的内容为大家介绍了js创建方式的几种方式。

1.工厂模式

function createPerson(name){
 //1、原料
 var obj=new Object();
 //2、加工
 obj.name=name;
 obj.showName=function(){
 alert(this.name);
 } 
 //3、出场
 return obj; 
} 
var p1=createPerson('小米');
p1.showName();

优点:解决了创建相似对象的问题

缺点:并不能zhi知道一个对象的lei'类型

2.构造函数

function CreatePerson(name){
 this.name=name;
 this.showName=function(){
 alert(this.name);
 }
}
 var p1=new CreatePerson('小米');

优点:可以将一些实例表示为一种特定的类型

缺点:方法会在每个实例上都重新创建一遍遍

3.原型

function Person(){}
Person.prototype.name="小米";
Person.prototype.showName=function(){
alert(this.name);
}
var p1=new Person();
p1.showName();

优点:属性和方法定义在原型上 ,故每个实例可以共享属性和方法

缺点:实例的属性不能私有化

4.混合式(构造函数+原型)

function CreatePerson(name){
 this.name=name;
}
 Create.prototype.showName=function(){
 alert(this.name);
 }
 var p1=new CreatePerson('小米');
 p1.showName();
 var p2=new CreatePerson('小米');
 p2.showName();
  alert(p1.showName==p2.showName);//true;原因:都是在原型下面,在内存中只存在一份,地址相同

通过构造函数来定义属性,原型来定义方法和共享的属性。

5.字面量

person={
  name:"小米",
  age:23
};

下载本文
显示全文
专题