国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS中多種方式創(chuàng)建對象詳解

2019-11-20 10:21:34
字體:
供稿:網(wǎng)友

1.內(nèi)置對象創(chuàng)建

var girl=new Object();   girl.name='hxl';   console.log(typeof girl); 

2.工廠模式,寄生構(gòu)造函數(shù)模式

function Person(name){     var p=new Object();//內(nèi)部進行實例化     p.name=name;     p.say=function(){       console.log('my name is '+ p.name);     }     return p;//注:一定要返回 } var girl=Person('haoxioli'); girl.say(); 

3.構(gòu)造函數(shù)創(chuàng)建

var Product=function(name){     this.name=name;     this.buy=function(){       console.log('我衣服的牌子是'+this.name);     } }   var pro=new Product('真維斯');   pro.buy(); 

4.原型創(chuàng)建,缺點:實例中的每個屬性有可能會不一樣

var Role=function(){}   Role.prototype.name={nickName:'昵稱'};   var boy=new Role();   boy.name.nickName='劉曉兵';   console.log(boy.name.nickName);//劉曉兵   var girl=new Role();   girl.name.nickName='郝曉利';   console.log(boy.name.nickName);//郝曉利,因為實例對象可以修改原型中的引用對象的值   console.log(girl.name.nickName);//郝曉利 

5.混合模式:原型+構(gòu)造,可以把不讓實例修改的屬性放到構(gòu)造函數(shù)中,可以修改的放原型中

var Role=function(){     this.name={nickName:'aaa'};   }   Role.prototype.age=30;   var boy=new Role();   boy.name.nickName='boy';   console.log(boy.name.nickName);//boy   var girl=new Role();   girl.name.nickName='girl';   console.log(boy.name.nickName);//boy,實例不會修改構(gòu)造函數(shù)中的值   console.log(girl.name.nickName);//girl 

6.字面量形式

var cat={     name:'lucy',     age:3,     sex:'母'  };//將對象轉(zhuǎn)換成字符串   console.log(JSON.stringify(cat));//{"name":"lucy","age":3,"sex":"母"}   var dog='{"name":"john","sex":"公"}';   console.log(JSON.parse(dog).name);//將字符串轉(zhuǎn)為對象 

7.拷貝模式

function extend(tar,source){     for(var i in source){       tar[i]=source[i];     }     return tar;   }   var boy={name:'醉俠客',age:20};   var person=extend({},boy);   console.log(person.name); 

8.第三方框架

//先引入包 <script src='js/base2.js'></script> //base2框架,Base.extend及constructor都是固定用法   var Animal=Base.extend({     constructor:function(name){       this.name=name;     },     say:function(meg){       console.log(this.name+":"+meg);     }   });   new Animal('lily').say('fish'); 

另一個第三方框架

<script src='js/simplejavascriptinheritance.js'></script> //simplejavascriptinheritance框架,Class.extend及init都是固定用法   var Person=Class.extend({     init:function(name){       this.name=name;     }   });   var p=new Person();   p.name='over';   console.log(p.name); 

以上這篇JS中多種方式創(chuàng)建對象詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 仁化县| 家居| 镇宁| 绍兴县| 哈密市| 新干县| 新余市| 花莲县| 古浪县| 正宁县| 左贡县| 台中县| 海盐县| 阜南县| 兴化市| 鄂伦春自治旗| 湘潭县| 商丘市| 都昌县| 安塞县| 邵武市| 东乡族自治县| 汤阴县| 新津县| 吉安县| 都江堰市| 七台河市| 山东省| 永顺县| 叙永县| 察隅县| 马边| 乌兰察布市| 通辽市| 饶平县| 昌吉市| 台山市| 紫金县| 康马县| 甘德县| 通江县|