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>
/**
*工厂模式
*/
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>
相关文章推荐
- JavaScript学习笔记
- EL表达式简介
- JS基础语法(switch语句)
- sigma.js框架初探
- JavaScript 01
- 简单的js图片每天变幻一张,可用于倒计时
- js发送验证码
- 由SOAP说开去 - - 谈谈WebServices、RMI、RPC、SOA、REST、XML、JSON
- fastjson使用 -- @JSONField使用
- JavaScript中变量的定义方式
- grunt使用小记
- 【小工具】用js自动生成pdf目录索引
- JavaScript框架思想2
- js 创建条形图
- JavaScript的RegExp类型总结
- JSP 问题总结
- JavaScript 小函数积累及性能优化
- 《JavaScript学习笔记三》if else及function的使用
- javascript中function的call()函数的使用-----替换当前函数中的当前对象
- jsp和html的区别是什么