博客园 :: 首页 ::  ::  ::  :: 管理

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

见protpotype.js 的实现方法:

Object.extend = function(destination, source) {
  for (property in source) {
    destination[property] = source[property];
  }
  return destination;
}
除此以外,还有一种不太常见的方法:  Function.apply.

apply 方法能劫持(<<Ajax in Action>> 书中用到"劫持"一语,很生动啊)另外一个对象的方法,
继承另外一个对象的属性。

示范代码如下:
 

Apply示范代码

 学生类本来不具备任何方法,但是在 Person.apply(this,arguments)  后,他就具备了 Person类的sayhello方法和
所有属性。  在 Print.apply(this,arguments) 后就自动得到了  show() 方法。


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



下一篇(链接已经修正):
用 Function.apply() 的参数数组化来提高 JavaScript程序性能 

Feedback

#1楼   回复  引用  查看    

2006-11-27 18:11 by Jeffrey Zhao      
JS很灵活,尤其是Function类型的apply和call两个方法很有用。:)

#2楼   回复  引用  查看    

2006-11-27 18:18 by Cat Chen      
Function.apply确实是个好东西!

#3楼[楼主]   回复  引用  查看    

2006-11-27 18:18 by Go_Rush      
@Jeffrey Zhao
是啊,用得好可以让代码非常优雅高效。下班了,晚上回家再发个 Function.apply() 的应用技巧。



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 574126




相关文章:

相关链接: