Rumah  >  Artikel  >  hujung hadapan web  >  js创建对象的方式及其特点

js创建对象的方式及其特点

不言
不言asal
2018-07-17 15:10:231555semak imbas

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
};

相关推荐:

JS创建对象的写法示例

多种创建js对象的方法详细讲述

Atas ialah kandungan terperinci js创建对象的方式及其特点. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn