锁定老帖子 主题:javascript面向对象技术基础(五)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-09
yunhaifeiwu 写道 你说的 引用f.call(o, 1, 2); 作用就相当于 o.m = f; o.m(1,2); delete o.m; 揭示f.call的含义,这是从等价代码的角度上揭示的。如果用文字进行描述又是怎样的呢? msdn上的描述很准确,很严密,但是理解有点困难。 因此我站到我测试得到的结果,进行总结归纳: f.call(o,1,2)的含义是: 1 调用了函数f .其实际参数是 1,2 2 在f函数执行时也仅在f函数执行时,f中的this参数中具有o中的属性。如果原来有与o相同的属性, 则会被覆盖掉。 申明:以上仅仅是个人对call的自我总结,目的是辅助理解,准确的定义请看相关权威教材。三人行必有 我师,如果有误,请指出,我会及时更正。在技术论坛上,谢绝因观点不一样,而进行人身攻击。 http://msdn.microsoft.com/zh-cn/magazine/cc163419.aspx 下面这句话是从上面提到的文章中摘录出来的: JavaScript 中的函数是对象.每个函数对象都有一个名为 call 的方法,它将函数作为第一个参数的方法进行调用。就是说,作为函数第一个参数传递给 call 的任何对象都将在函数调用中成为“this”的值. 可能是因为javascript是一种弱类型的语言,没有那么严格的要求,所以才导致我们对问题的理解不同.当时写这些东西的时候我也没有用调试工具来调试,所以没有想到你提到的那一点.上面的文章也是从msdn上找的,不知道是不是你说的那一篇.大家参考一下,具体怎么理解就看个人了. |
|
返回顶楼 | |
发表时间:2008-12-13
很不错,适合js初学者,不知道有没有相关的书籍?
|
|
返回顶楼 | |
发表时间:2008-12-16
我很就不回复了 ,但看到你写的文章,不得不回复,写的真好,我学js,总共才有两次感悟,其中第二次是看了你的文章后,谢谢诶!
|
|
返回顶楼 | |
发表时间:2008-12-16
yuxiaojicai 写道 我很就不回复了 ,但看到你写的文章,不得不回复,写的真好,我学js,总共才有两次感悟,其中第二次是看了你的文章后,谢谢诶! 但愿我的文章不会给你造成误解,多看看别人的文章,比较一下。 |
|
返回顶楼 | |
发表时间:2008-12-17
是否还有下文 期待 继续
|
|
返回顶楼 | |
发表时间:2008-12-18
謝謝樓主,辛苦了.寫的很好,淺顯易懂!!
|
|
返回顶楼 | |
发表时间:2008-12-19
daoyongyu 写道 謝謝樓主,辛苦了.寫的很好,淺顯易懂!!
同感同感 |
|
返回顶楼 | |
发表时间:2008-12-24
楼主第一次让我感觉到js的可怕 呵呵
|
|
返回顶楼 | |
发表时间:2008-12-26
daoyongyu 写道 謝謝樓主,辛苦了.寫的很好,淺顯易懂!!
这个系列基本看完了。 ps:贴主感觉繁体很帅吗?还是因为是港澳人士?小小的不爽而已。没事没事。 |
|
返回顶楼 | |
发表时间:2008-12-29
楼主的代码有很多错误,很明显的一个就是this的使用,其实this在js中是关联执行时的作用域,而非定义时的作用域,呵呵,好好看看,别误导新手
|
|
返回顶楼 | |