没有合适的资源?快使用搜索试试~ 我知道了~
Javascript当然也不例外,可是关于对象的引用问题,你考虑过么?通常的做法是一系列对象共享类的方法,而不是为每个对象复制一份函数。下面看看为每个对象复制一份函数的做法。 代码如下:var myobject=function(param1,param2) { this.name=param1; this.age=param2; this.showmsg=function() { alert(“name:”+this.name+”\n”+”age:”+this.age); } } var objectone=new myobject(‘liu’,20); alert(objectone.na
资源详情
资源评论
资源推荐
javascript Prototype 对象扩展对象扩展
Javascript当然也不例外,可是关于对象的引用问题,你考虑过么?通常的做法是一系列对象共享类的方法,而不是为每个对
象复制一份函数。下面看看为每个对象复制一份函数的做法。
代码如下:
var myobject=function(param1,param2)
{
this.name=param1;
this.age=param2;
this.showmsg=function()
{
alert(“name:”+this.name+””+”age:”+this.age);
}
}
var objectone=new myobject(‘liu’,20);
alert(objectone.name); //liu
var objecttwo=new myobject(‘lin’,20);
alert(objecttwo.name); //lin
alert(objecttwo.showmsg());
var objectthree=new myobject(‘lhking’,22);
alert(objectthree.showmsg());
看起来不错,用起来也不错,对象之间互相没有任何干扰,也能正常完成工作,一切看起来理所当然,但是你每次产生一个新
对象的时候,脚本引擎都会给对象复制一份属性和方法,有没有觉得这样很浪费内存呢?在客户端的这种对象的复制方式,极
其容易造成内存泄露,因为每次产生新的实例都会复制所有的属性和方法,占用大量的内存。
在大型JavaScript应用中首先考虑的就是内存问题。
正确的使用方法是用prototype关键字来定义一个类的方法或者属性
代码如下:
var myobject=function(param1,param2)
{
this.name=param1;
this.age=param2;
myobject.prototype.showmsg=function()
{
alert(“name:”+this.name+””+”age:”+this.age);
}
}
var objectone=new myobject(‘liu’,20);
alert(objectone.name);
var objecttwo=new myobject(‘lin’,20);
alert(objecttwo.name);
alert(objecttwo.showmsg());
var objectthree=new myobject(‘lhking’,22);
alert(objectthree.showmsg);
这样的话,你创建的对象之间可以共用方法,也就是showmsg()函数只定义一次,其它的对象共用这一个方法,而不是复制出
自己的方法。
Javascript中的prototype已经说完。
看看JavaScript中的对象扩展
代码如下:
function rand(x)
{
return Math.ceil(Math.random()*x);
}
生成随机数组的一个扩展方法
Array.prototype.random=function()
{
for(var i=(this.length-1);i>1;i–)
{
var j=rand(this.length-1);
var cache=this[i];
this[i]=this[j];
this[j]=cache;
}
}
var array=new Array(“1″,”2″,”3″,”4″,”5”);
for(var a in array)
weixin_38657376
- 粉丝: 4
- 资源: 928
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0