手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >小议Function.apply() 之一------(函数的劫持与对象的复制)
小议Function.apply() 之一------(函数的劫持与对象的复制)
摘要:关于对象的继承,一般的做法是用复制法:Object.extend见protpotype.js的实现方法:复制代码代码如下:Object.ex...

关于对象的继承,一般的做法是用复制法:Object.extend

见protpotype.js的实现方法:

复制代码 代码如下:Object.extend=function(destination,source){

for(propertyinsource){

destination[property]=source[property];

}

returndestination;

}

除此以外,还有一种不太常见的方法:Function.apply.

apply方法能劫持(<<AjaxinAction>>书中用到"劫持"一语,很生动啊)另外一个对象的方法,

继承另外一个对象的属性。

示范代码如下:

Apply示范代码

复制代码 代码如下:<script>

functionPerson(name,age){//定义一个类,人类

this.name=name//名字

this.age=age//年龄

this.sayhello=function(){alert("hello")}

}

functionPrint(){//显示类的属性

this.funcName="Print"

this.show=function(){

varmsg=[]

for(varkeyinthis){

if(typeof(this[key])!="function")msg.push([key,":",this[key]].join(""))

}

alert(msg.join("n"))

}

}

functionStudent(name,age,grade,school){//学生类

Person.apply(this,arguments)

Print.apply(this,arguments)

this.grade=grade//年级

this.school=school//学校

}

varp1=newPerson("jake",10)

p1.sayhello()

vars1=newStudent("tom",13,6,"清华小学")

s1.show()

s1.sayhello()

alert(s1.funcName)

</script>学生类本来不具备任何方法,但是在Person.apply(this,arguments)后,他就具备了Person类的sayhello方法和

所有属性。在Print.apply(this,arguments)后就自动得到了show()方法。

本文,作为抛砖引玉,只对apply的用法(在对象继承和函数劫持方面)做个小示范,其他更深入的应用要

靠大家慢慢去领会了。

【小议Function.apply() 之一------(函数的劫持与对象的复制)】相关文章:

DeviceOne 让你一见钟情的App快速开发平台

二级连动菜单

Node.js 条形码识别程序构建思路详解

JavaScipt中Function()函数的使用教程

JavaScript中length属性的使用方法

JavaScript窗口功能指南之在窗口中书写内容

简介JavaScript中toTimeString()方法的使用

jQuery插件支持同一页面被多次调用

自适应图片大小的弹出窗口

什么是Node.js?

精品推荐
分类导航