怎么在JavaScript中创建对象

  介绍

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

<强>一、基本模式

var  person =, new 对象();=,person.name “孙悟空“;=,person.weapon “棒子“;=,,person.run  function  (), {, return  this.name  +,“武器是“,+,person.weapon;   以前,}

<强>二、工厂模式

function  creatPerson(名字,武器),{,var  person =, new 对象();=,person.name “孙悟空“;=,person.weapon “棒子“;=,,person.run  function  (), {, return  this.name  +,“武器是“,+,person.weapon;   ,}return 人;   以前,}

缺点:1,实例之间没有联系;2,没有使用新关键字;3,会造成资源的浪费,每生成一个实例都会都会增加一些重复的内容
缺点3如何理解呢:在多次调用creatPerson方法时,创建对象的方法运行会生成多个,虽然多个对象的方法都是一样的。

构造函数解决了多个实列之间没有联系的问题,可以用instanceof判断

<强>三、构造函数模式

function  creatPerson(名字,武器),{,this.name =,名称;,this.weapon =,武器;,this.run =, function  (), {, return  this.name  +,“武器是“,+,this.weapon;   ,}   ,}//调用创建对象   ,var  wukou =new  creatPerson(“孙悟空”,,“棒子“);

缺点:没有解决工厂模式浪费内存的缺点,每创建一个对象会增加很多重复的东西
为了解决这个问题请看原型模式

<强>四,原型(原型)模式

js中规定,每一个构造函数都有一个原型属性,指向另一个对象,这个对象的所有属性和方法,都会被构造函数的实例继承,可以把那些不变的属性和方法直接定义在原型对象上

, function  personObj (), {,}=,personObj.prototype.name “孙悟空“;=,personObj.prototype.weapon “棒子“;=,,personObj.prototype.run  function  (), {, return  this.name  +,“武器是“,+,this.weapon;   ,}//创建对象   ,var  person =, new  personObj();,//原型模式的另一种写法,function  personObj (), {,}   ,personObj.prototype =, {   构造函数:大敌;personObj,//强制指回personObj   ,名字:“孙悟空“,   ,武器:“棒子“,   ,运行:function  (), {, return  this.name  +,“武器是“,+,this.weapon;   ,}   以前,}

缺点:构造函数没有参数,不能传参初始化值,因为不同的对象可能只共享方法,但是不会共享属性,为了解决这个问题请看构造函数和原型模式的组合模式,还解决了前面的所有缺点,Jquery就是使用的这种方法

<强>五、组合模式

这样,不同的实例可有自己特有的属性,还有共享的方法

, function  personObj(名称、武器),{,this.name =,名称;,this.weapon =,武器;   ,}   ,personObj.prototype =, {   ,运行:function  (), {, return  this.name  +,“武器是“,+,this.weapon;   ,}   ,}//创建对象   ,var  wukou =, new  personObj(“孙悟空”,,“棒子“);

虽然这种创建对象的方式已经够我们使用了,平时使用这方式也没有问题的,当然还有一点小问题:对象中的属性和方法是分开的,请看动态原型方法

<强>六、动态原型模式

, function  personObj(名字,武器),{,this.name =, name  this.weapon =, weapon  if  (typeof  this.run  !=,“function")   ,{   ,personObj.prototype =, {   ,运行:function  (), {, return  this.name  +,“武器是“,+,this.weapon;   ,}   ,}   ,}   ,   }大敌;   ,//创建对象   ,var  wukou =, new  personObj(“孙悟空”,,“棒子“);

函数中使用<代码>如果(typeof this.run !=癴unction") 目的是为了防止创建多个对象时,方法执行多次

JavaScript的特点

1. JavaScript主要用来向HTML页面添加交互行为。   2. javascript可以直接嵌入到HTML页面,但写成单独的js文件有利于结构和行为的分离。   3.JavaScript具有跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行。

以上就是怎么在JavaScript中创建对象,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

怎么在JavaScript中创建对象