利用JavaScript创建一个自定义对象

  介绍

本篇文章给大家分享的是有关利用JavaScript创建一个自定义对象,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1,创建一个对象实例

var  person =, new 对象();   时间=person.name “rose";   时间=person.age  18;   时间=person.job “actor";   时间=person.sayName  function  (), {   ,console.log (this.name);   };   console.log(人);

2,对象字面量

var  person =, {   ,名字:“rose",   ,年龄:18岁   ,工作:“actor",   ,sayName: function  (), {   ,console.log (this.name);   },   };   console.log(人);

上面两种方式是创建对象的两种基本方式,他们的原型就是对象

3,工厂模式

function  createPerson(姓名、年龄、演员){   ,var  person =, new 对象();=,person.name “rose";=,person.age  18;=,person.job “actor";=,,person.sayName  function  (), {   console.log才能(this.name);   ,};   return 人   }   console.log (p1  instanceof 对象);//真实的   console.log (p1  instanceof  createPerson);//假

从上面代码中我们可以看出来,工厂模式实际上就是借助函数,内部返回使用第一种方式(新对象())创建的对象。

优点:可以很方便的创建相似对象。

缺点:没有解决对象识别的问题,即怎样知道一个对象的类型。

4,构造函数方式

function 人(名字,年龄,工作),{=,this.name 名称;=,this.age 年龄;=,this.job 工作;=,,this.sayName  function  (), {   ,console.log (this.name);   ,};   }   var  p =, new 人(“rose",, 18日,“actor");   console.log (p  instanceof 人);//真实的   console.log (p  instanceof 对象);//真正的

构造函数可以创建特定类型的对象,像对象,数组这样的原生构造函数,在运行时会自动出现在执行环境中。

构造函数模式与工厂模式的不同之处为:

<李>

没有显式得创建对象,

<李>

直接将属性和方法赋值给了这对象

<李>

没有返回语句

构造函数方式创建对象必须使用新的、操作符,会经历下面四个步骤

<李>

创建一个对象

<李>

这指向这个新创建的对象

<李>

执行代码

<李>

返回这个对象

构造函数方式的优点:以构造函数创建的对象,在其原型上都会有一个构造函数属性,这个属性指向构造函数人而这个属性最初是用来标识数据类型的。

忧化

function 人(名字,年龄,工作),{=,this.name 名称;=,this.age 年龄;=,this.job 工作;=,,this.sayName  sayName;   }   function  sayName () {   ,console.log (this.name);   }   var  p =, new 人(“rose",, 18日,“actor");

缺点:当对象需要很多方法的时候,就会定义多个全局作用域下的函数,这样一来,不仅毫无封装性可言,而且让全局作用域下的函数过多。

5,原型模式

function 人(),{}   时间=Person.prototype.name “rose";   时间=Person.prototype.age  18;   时间=Person.prototype.sayName  function  (), {   ,console.log (this.name);   };   var  p =, new 人();   console.log (p);

说到原型对象就要说一下原型链,原型与原型链对象如下图所示:

利用JavaScript创建一个自定义对象

我们可以看的到,在原型上面定义的所有属性都是在其原型对象上。在原型对象上的属性与方法属于公有属性和公有方法。其所有实例都可以访问到。

6, * *组合使用构造函数模式和原型模式* *最常用

function 人(姓名、,年龄),{=,this.name 名称;=,this.age 年龄;   }   时间=Person.prototype.sayName  function  (), {   ,console.log (this.name);   };   var  p =, new 人(“rose",, 18);   console.log (p);

利用JavaScript创建一个自定义对象

对象在引用其属性的时候,会按照原型链去查找,直到查找到对象的原型。

利用JavaScript创建一个自定义对象