关于Javascript 对象(object)的prototype


Posted in Javascript onMay 09, 2014

Javascript中的每个对象(object)都会有 prototype 。试一下:

var Richard = new Object(); 
alert(typeof(Richard.prototype));

结果令人郁闷,浏览器弹出来的是 undefined……

到底是怎么回事呢?

再看一个例子:

function Richard(){} 
alert(typeof(Richard.prototype));

上面的例子似乎说明,只有 function 对象才有 prototype, 而一般的 Object 对象是没有 prototype 的,事实怎样呢?

我们再来执行一句就明白了:

var Richard = new Object(); 
alert(Richard.__proto__);

是不是明白了?

其实我们都有一个误区,就是认为形成 Javascript 对象的prototype chain 的 prototype 就是一个名字为 prototype 的属性,而且是可以访问的。其实,Javascript 的 prototype 和 名字为 prototype 的属性在一开始一点儿关系都没有,是两个不同的事物。

对于一般对象来说,我们只能通过 __proto__ 这样的属性去访问从 Object 对象继承来的 prototype;

对于函数对象来说,在其建立的时候,已经将 Function对象的 prototype 赋值给了 prototype 属性。

Javascript 相关文章推荐
javascript-表格排序(降序/反序)实现介绍(附图)
May 30 Javascript
js中parseInt函数浅谈
Jul 31 Javascript
jQuery中offset()方法用法实例
Jan 16 Javascript
45个JavaScript编程注意事项、技巧大全
Feb 11 Javascript
js实现仿Discuz文本框弹出层效果
Aug 13 Javascript
js实现图片上传并正常显示
Dec 19 Javascript
jQuery使用each方法与for语句遍历数组示例
Jun 16 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
jquery+css实现侧边导航栏效果
Jun 12 jQuery
微信小程序之网络请求简单封装实例详解
Jun 28 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
Sep 25 Javascript
VUE element-ui 写个复用Table组件的示例代码
Nov 18 Javascript
javascript字母大小写转换的4个函数详解
May 09 #Javascript
js统计页面的来访次数实现代码
May 09 #Javascript
JavaScript Array对象扩展indexOf()方法
May 09 #Javascript
js获取鼠标点击的位置实现思路及代码
May 09 #Javascript
用js格式化金额可设置保留的小数位数
May 09 #Javascript
JQuery动画animate的stop方法使用详解
May 09 #Javascript
Javascript玩转继承(三)
May 08 #Javascript
You might like
WHOIS类的修改版
2006/10/09 PHP
用PHP制作的意见反馈表源码
2007/03/11 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
10个简化PHP开发的工具
2014/12/25 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
Javascript变量函数浅析
2011/09/02 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
中班开学寄语
2014/04/04 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
大学军训的体会
2014/11/08 职场文书
班主任自我评价范文
2015/03/11 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js