您现在的位置:首页 --> JavaScript --> Javascript原型链和原型的一个误区
Javascript原型链和原型的一个误区
浏览:2885次 出处信息
之前我对Javascript的原型链中, 原型继承与标识符查找有些迷惑,
如, 如下的代码:
- function Foo() {};
- var foo = new Foo();
- Foo.prototype.label = "laruence";
- alert(foo.label); //output: laruence
- alert(Foo.label);//output: undefined
今天看到了如下这个图:
另外, 在Javascript Object Hierarchy看到:
The prototype is only used for properties inherited by objects/instances created by that function. The function itself does not use the associated prototype.
也就是说, 函数对象的prototype并不作用于原型链查找过程中,
今天在firefox下发现(因为firefox通过__proto__暴露了[[prototype]]), 真正参与标识符查找的是函数对象的__proto__,
- function Foo() {};
- var foo = new Foo();
- Foo.__proto__.label = "laruence";
- alert(Foo.label); //output: laruence
- alert(foo.label);//output: undefined
而, 显然的:
- function Foo() {};
- alert(Foo.__proto__ === Foo.prototype); //output: false
另外, 也解释了,
- alert(Object.forEach); // undefined
- Function.prototype.forEach = function(object, block, context) {
- for (var key in object) {
- if (typeof this.prototype[key] == "undefined") {
- block.call(context, object[key], key, object);
- }
- }
- };
- alert(Object.forEach);
- alert(Function.forEach);
- alert(Object.forEach === Function.forEach); // true
建议继续学习:
- 轻量级在线原型设计工具mockingbird (阅读:4780)
- 产品交互原型设计工具分享 (阅读:3296)
- 高效输出移动app产品原型 (阅读:3179)
- 原型: 新浪微博客户端 (阅读:2950)
- Javascript继承-原型的陷阱 (阅读:2710)
- 非原型 不设计 (阅读:2667)
- 关于快速原型的一点纠结 (阅读:2328)
- 页面线框图教程(之七):不需要存在的原型 (阅读:2283)
- JavaScript原型之路 (阅读:2197)
- iOS设备上高效演示APP原型的方法总结 (阅读:2015)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Javascript的this用法
后一篇:jRaiser揭秘――事件监听兼容处理 >>
文章信息
- 作者:雪候鸟 来源: 风雪之隅
- 标签: 原型 原型链
- 发布时间:2010-05-14 13:49:08
建议继续学习
近3天十大热文
-
[882] WordPress插件开发 -- 在插件使用 -
[136] 解决 nginx 反向代理网页首尾出现神秘字 -
[57] 整理了一份招PHP高级工程师的面试题 -
[55] 用 Jquery 模拟 select -
[54] Innodb分表太多或者表分区太多,会导致内 -
[54] 分享一个JQUERY颜色选择插件 -
[54] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] CloudSMS:免费匿名的云短信 -
[52] jQuery性能优化指南 -
[51] 海量小文件存储

