目前还正在学系面向对象的JS,越学习越发现JS真的是强大,以后要专心研究JS了。
下面直接用代码例子来看看JS中工厂方式生成对象与原型的区别:
<script>
//工厂方式
function showObj(name, age){
var obj = new Object();
obj.name=name;
obj.age=age;
obj.showName=function(){
alert(this.name);
}
obj.showAge=function(){
alert(this.age);
}
return obj;
}
var obj1 = showObj("test1",22);
obj1.showName();
var obj2 = showObj("test2",22);
obj2.showName();
//用new的形式创建对象
function ShowObject(name, age){
//JS内部会隐式的执行 var this = new Object();
this.name=name;
this.age=age;
this.showName=function(){
alert(this.name);
}
this.showAge=function(){
alert(this.age);
}
//隐式返回 return this;
}
var obj3 = new ShowObject("test3",33);
obj3.showName();
var obj4 = new ShowObject("test4",44);
obj4.showName();
//混合方式,用原型来实现 prototype
function ShowObjectPro(name, age){
this.name=name;
this.age=age;
}
ShowObjectPro.prototype.showName=function(){
alert(this.name);
}
ShowObjectPro.prototype.showAge=function(){
alert(this.age);
}
var obj5 = new ShowObjectPro("test5",55);
obj5.showName();
var obj6 = new ShowObjectPro("test6",66);
obj6.showName();
</script>
这些也还是JS中最基础的,以后学习的路还很长,好好学习,天天向上!