JS中,实例仅指向最初原型对象吗
在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而已。这里暂不表述