JS中,实例仅指向最初原型对象吗

 我来答
Jliter_染指
2017-02-06 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:78
采纳率:100%
帮助的人:66万
展开全部

在js中,实例化不仅仅是原型实例。还具有其他的功效。

三种常见模式:工厂模式,构造函数模式,原型模式

原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。

实例化简单的来说就是 new。newnewnew,new出一片天,实例于咱们之前进行的原型对象是实例化的一个通用方式。

工厂模式(严谨模式):    

function oj(){  

var lio=new Object();  

lio.name='lio';  

lio.attr='男';  

lio.hobby=function(){  

var li=document.createElement("p");  

var txt=document.createTextNode("三妹");  

li.appendChild(txt);  

document.body.appendChild(li);  

};  

return lio;  

}  

var person=oj();  


构造函数模式:

function oj2(name,age){  

this.name=name;  

this.age=age;  

this.hobby=function(){  

var li=document.createElement("p");  

var txt=document.createTextNode("三妹");  

li.appendChild(txt);  

document.body.appendChild(li);  

}  

}  

var person2=new oj2('三妹',123);  

person2.hobby();  


原型模式:

function oj3(){  

//this.name='lio';  

}  

oj3.prototype.name='lio';  

oj3.prototype.love= function (name) {  

alert("爱"+name);  

};  

var person3=new oj3();  

//检测是在实例中还是在原型中  

alert(person3.hasOwnProperty("name"));  

alert(person3.hasOwnProperty("rename"));  

person3.love('三妹');  


。当然还有混合模式。不过就是一个mixin而已。这里暂不表述

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式