您现在的位置:首页 --> JavaScript --> Javascript原型链和原型的一个误区
Javascript原型链和原型的一个误区
浏览:2289次 出处信息
之前我对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 (阅读:4144)
- 产品交互原型设计工具分享 (阅读:2593)
- 原型: 新浪微博客户端 (阅读:2332)
- 非原型 不设计 (阅读:2095)
- Javascript继承-原型的陷阱 (阅读:2180)
- 高效输出移动app产品原型 (阅读:2100)
- 关于快速原型的一点纠结 (阅读:1741)
- 页面线框图教程(之七):不需要存在的原型 (阅读:1656)
- JavaScript原型之路 (阅读:1605)
- iOS设备上高效演示APP原型的方法总结 (阅读:1463)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Javascript的this用法
后一篇:jRaiser揭秘――事件监听兼容处理 >>
文章信息
- 作者:雪候鸟 来源: 风雪之隅
- 标签: 原型 原型链
- 发布时间:2010-05-14 13:49:08
建议继续学习
近3天十大热文
- [56] Oracle MTS模式下 进程地址与会话信
- [56] IOS安全–浅谈关于IOS加固的几种方法
- [55] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [53] Go Reflect 性能
- [53] android 开发入门
- [50] 【社会化设计】自我(self)部分――欢迎区
- [50] 读书笔记-壹百度:百度十年千倍的29条法则
- [39] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑