prototype-1.3.1框架中的类继承实现机制
2006-11-28 09:27
204 查看
在prototype-1.3.1框架中,首先为每个对象都定义了一个extend方法:
//为Object类添加静态方法:extend
Object.extend = function(destination, source) {
for(property in source) {
destination[property] = source[property];
}
return destination;
}
//通过Object类为每个对象添加方法extend
Object.prototype.extend = function(object) {
return Object.extend.apply(this, [this, object]);
}
Object.extend方法很容易理解,它是Object类的一个静态方法,用于将参数中source的所有属性都赋值到destination对象中,并返回destination的引用。下面解释一下Object.prototype.extend的实现,因为Object是所有对象的基类,所以这里是为所有的对象都添加一个extend方法,函数体中的语句如下:
Object.extend.apply(this,[this,object]);
这一句是将Object类的静态方法作为对象的方法运行,第一个参数this是指向对象实例自身;第二个参数是一个数组,包括两个元素:对象本身和传进来的对象参数object。函数功能是将参数对象object的所有属性和方法赋值给调用该方法的对象自身,并返回自身的引用。
=======================
注: apply方法解释
官方解释:应用某一对象的一个方法,用另一个对象替换当前对象。
apply与call的区别是第二个参数不同。apply是 数组或者arguments 对象。而call是逗号隔开的任何类型。
//为Object类添加静态方法:extend
Object.extend = function(destination, source) {
for(property in source) {
destination[property] = source[property];
}
return destination;
}
//通过Object类为每个对象添加方法extend
Object.prototype.extend = function(object) {
return Object.extend.apply(this, [this, object]);
}
Object.extend方法很容易理解,它是Object类的一个静态方法,用于将参数中source的所有属性都赋值到destination对象中,并返回destination的引用。下面解释一下Object.prototype.extend的实现,因为Object是所有对象的基类,所以这里是为所有的对象都添加一个extend方法,函数体中的语句如下:
Object.extend.apply(this,[this,object]);
这一句是将Object类的静态方法作为对象的方法运行,第一个参数this是指向对象实例自身;第二个参数是一个数组,包括两个元素:对象本身和传进来的对象参数object。函数功能是将参数对象object的所有属性和方法赋值给调用该方法的对象自身,并返回自身的引用。
=======================
注: apply方法解释
官方解释:应用某一对象的一个方法,用另一个对象替换当前对象。
apply与call的区别是第二个参数不同。apply是 数组或者arguments 对象。而call是逗号隔开的任何类型。
相关文章推荐
- prototype-1.3.1框架中的类继承实现机制
- JavaScript简洁继承机制实现(不使用prototype和new)
- JavaScript不使用prototype和new实现继承机制
- 用反射机制和prototype实现继承
- JavaScript不使用prototype和new实现继承机制
- Javascript利用反射机制和prototype实现类的继承
- 继承机制的实现 对象冒充
- Linux 2.6.10内核下PCI Express Native热插拔框架的实现机制
- Javascript 继承机制和构造方法链实现
- JavaScript如何实现面向对象和继承机制?
- Linux 2.6.10内核下PCI Express Native热插拔框架的实现机制
- prototype属性实现继承原理图
- 实现继承的两种方式 call/apply 和 prototype
- JavaScript中,prototype对象是实现面向对象的一个重要机制
- 使用NSProxy实现消息转发机制,模拟多重继承
- 学习prototypejs中的继承实现机制(一): Object.extend()、Class.create()、Class#addMethods()的使用
- 基于JSR-356实现的Tyrus WebSocket框架的消息传递机制初步了解
- 利用prototype实现JavaScript继承
- JS中的constructor与prototype(2)--js继承的实现原理
- Java协程框架----Kilim实现机制解析