您的位置:首页 > Web前端 > JavaScript

javascript简单工厂设计模式////javascript构造函数//////prototype原型介绍

2016-05-29 00:42 573 查看
<script>

/**

*工厂模式

*/

function person(name){

var obj=new Object();

obj.name=name;

obj.showName=function(){

alert(this.name);

}

}

var p1=person("张飞");/////var p1=new person("张飞");也可以

p1.showName();

//////结果显示 “张飞”

</script>

/*

*构造函数

**/

<script>

/////////用new调用一个函数的时候

//////这个函数创造的对象就是this

//////这个函数返回的对象就是this

function person(name){

this.name=name;

this.showName=function(){

alert(this.name);

}

}

new person("关羽").showName();

///////////打印“关羽”

</script>

/**

*prototype 原型

**/

///////作用:改写对象下面的方法或者属性,让共有的方法或者属性在内存中只存在一份,也就是只开辟一块内存区域来存放对象

/////////prototype只能给构造函数加

<script>

例子1:

var arr=[10,20,30,40,50,100,151];
///401

var arr2=[10,20,30,40];
/////100

var arr3=[10,20,30,41];
/////101

var arr4=[10,20,30,42];
/////102

/*arr.sum=function(){

var s=0;

for(var i=0;i<this.length;i++){

s+=this[i];

}

return s;

}*/

Array.prototype.sum=function(){

var s=0;

for(var i=0;i<this.length;i++){

s+=this[i];

}

return s;

}

alert(arr.sum()+"=="+arr2.sum()+"="+arr3.sum()+"="+arr4.sum());

/////////打印出401 100 101 102

例子2:

function Person(name){

this.name=name;

}

Person.prototype.showName=function(){

alert(this.name);

}

var p1=new Person("刘备");

var p2=new Person("赵云");

alert(p1.showName===p2.showName);

////////打印---true(因为是同一个原型的方法)

//////同样可以为原型绑定属性

///////////例如:Person.prototype.guo="真帅啊";

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: