星空网 > 软件开发 > Java

JS中多种方式创建对象

1.内置对象创建

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

2.工厂模式,寄生构造函数模式

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

3.构造函数创建

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

4.原型创建,缺点:实例中的每个属性有可能会不一样

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.混合模式:原型+构造,可以把不让实例修改的属性放到构造函数中,可以修改的放原型中

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,实例不会修改构造函数中的值  console.log(girl.name.nickName);//girl

6.字面量形式

var cat={    name:'lucy',    age:3,    sex:'母'  };//将对象转换成字符串  console.log(JSON.stringify(cat));//{"name":"lucy","age":3,"sex":"母"}  var dog='{"name":"john","sex":"公"}';  console.log(JSON.parse(dog).name);//将字符串转为对象

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='/images/loading.gif' data-original='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='/images/loading.gif' data-original='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中多种方式创建对象

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

跨境电商人工智能翻译:https://www.goluckyvip.com/tag/36154.html
跨境电商日历:https://www.goluckyvip.com/tag/36155.html
跨境电商如何操作:https://www.goluckyvip.com/tag/36156.html
跨境电商如何出口:https://www.goluckyvip.com/tag/36157.html
跨境电商如何付款:https://www.goluckyvip.com/tag/36158.html
跨境电商如何海外付款:https://www.goluckyvip.com/tag/36159.html
三亚有哪些酒店值得入住?:https://www.vstour.cn/a/366173.html
零售晚报:丽人丽妆2023年扭亏为盈 玉容初、美壹堂等自有品牌增速超40% :https://www.kjdsnews.com/a/1836649.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流