js创建对象几种常用方法

来源:互联网 发布:linux tcp backlog 编辑:程序博客网 时间:2024/06/05 07:07

第一种模式:工厂方式 

复制代码代码如下:

var lev=function(){ 
return "脚本"; 
}; 
function Parent(){ 
var Child = new Object(); 
Child.name="脚本"; 
Child.age="4"; 
Child.lev=lev; 
return Child; 
}; 
var x = Parent(); 
alert(x.name); 
alert(x.lev()); 

说明: 
1.在函数中定义对象,并定义对象的各种属性,,虽然属性可以为方法,但是建议将属性为方法的属性定义到函数之外,这样可以避免重复创建该方法 
2.引用该对象的时候,这里使用的是 var x = Parent()而不是 var x = new Parent();因为后者会可能出现很多问题(前者也成为工厂经典方式,后者称之为混合工厂方式),不推荐使用new的方式使用该对象 
3.在函数的最后返回该对象 
4.不推荐使用这种方式创建对象,但应该了解 
第二种模式:构造函数方式 
复制代码代码如下:

var lev=function(){ 
return "脚本"; 
}; 
function Parent(){ 
this.name="脚本"; 
this.age="30"; 
this.lev=lev; 
}; 
var x =new Parent(); 
alert(x.name); 
alert(x.lev()); 

说明: 
1.与工厂方式相比,使用构造函数方式创建对象,无需再函数内部重建创建对象,而使用this指代,并而函数无需明确return 
2.同工厂模式一样,虽然属性的值可以为方法,扔建议将该方法定义在函数之外 
3..同样的,不推荐使用这种方式创建对象,但仍需要了解 
第三种模式:原型模式 
复制代码代码如下:

var lev=function(){ 
return "脚本"; 
}; 
function Parent(){ 

}; 
Parent.prototype.name="李小龙"; 
Parent.prototype.age="30"; 
Parent.prototype.lev=lev; 
var x =new Parent(); 
alert(x.name); 
alert(x.lev()); 

说明: 
1.函数中不对属性进行定义 
2.利用prototype属性对属性进行定义 
3.同样的,不推荐使用这样方式创建对象 
第四种模式:混合的构造函数,原型方式(推荐) 
复制代码代码如下:

function Parent(){ 
this.name="脚本"; 
this.age=4; 
}; 
Parent.prototype.lev=function(){ 
return this.name; 
};; 
var x =new Parent(); 
alert(x.lev()); 

说明:1.该模式是指混合搭配使用构造函数方式和原型方式 
2.将所有属性不是方法的属性定义在函数中(构造函数方式) 
将所有属性值为方法的属性利用prototype在函数之外定义(原型方式) 
3.推荐使用这样方式创建对象,这样做有好处和为什么不单独使用构造函数方式和原型方式,由于篇幅问题这里不予讨论 
第五种模式:动态原型方式 
复制代码代码如下:

function Parent(){ 
this.name="脚本"; 
this.age=4; 

if(typeof Parent._lev=="undefined"){ 

Parent.prototype.lev=function(){ 
return this.name; 

Parent._lev=true; 

}; 

var x =new Parent(); 
alert(x.lev()); 


说明: 
1.动态原型方式可以理解为混合构造函数,原型方式的一个特例 
2.该模式中,属性为方法的属性直接在函数中进行了定义,但是因为 
复制代码代码如下:

if(typeof Parent._lev=="undefined"){ 

Parent._lev=true;} 

从而保证创建该对象的实例时,属性的方法不会被重复创建 
3.,推荐使用这种模式
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 博士超期学信网的信息被删除怎么办 电脑账号删除后电脑开不了怎么办 lol不小心融错了皮肤怎么办 农村医保交费了没有录入系统怎么办 电动三轮车在泗阳被交警扣了怎么办 环评证实际的设备少报了怎么办 别人盗用了自己的社保卡怎么办 如果有人盗用社保卡信息住院怎么办 丈夫出轨生下孩子妻子该怎么怎么办 l老公偷着儿子消失了怎么办 老婆出轨怀孕现在流了他跑了怎么办 交通银行贷款资金户里面的钱怎么办 新车2个月出现好多小毛病怎么办 地上终末之日尸潮破坏房子怎么办 初一数学期未考试考了77分怎么办 生育服务单再婚婚史情况怎么办 我孩子的数学一直很差怎么办呀! 扶桑花的叶子出斑点发黄怎么办 高二的学生成绩下降特别大怎么办 六个月大的宝宝咳嗽伴有气喘怎么办 昨天奶用力吸今天好疼怎么办 律师把医院的医药费单子丢了怎么办 母亲是个不明事理的人怎么办 华西医院的就诊卡掉了怎么办 整形医院把我脸上疤痕被大了怎么办 牙齿缝里的东西很臭怎么办 五岁宝宝牙齿有空洞斑点怎么办 给别人担保贷款被起诉了怎么办 不小心在微信里登录江西移动怎么办 住院出院后医保卡在医院怎么办 医院门诊做完检查医生下班了怎么办 退税的发票勾选为抵扣的发票怎么办 买完邮轮票后护照换了怎么办? 朝阳医院挂号过了取号时间怎么办 苹果4的id密码忘了怎么办 ipad己停用5分钟后再试怎么办 手机上大智慧日线失真怎么办 安卓手机突然地图信号弱怎么办 魔兽争霸对战模式没有金币要怎么办 常州号码被标记了商铺的名字怎么办 车提档了不接收怎么办公司能收回吗