关于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 相关文章推荐
关于恒等于(===)和非恒等于(!==)
Aug 20 Javascript
javascript full screen 全屏显示页面元素的方法
Sep 27 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
Jan 22 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
Nov 16 Javascript
Angularjs实现搜索关键字高亮显示效果
Jan 17 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 Javascript
jQuery实现参数自定义的文字跑马灯效果
Aug 15 jQuery
Vue+Webpack完美整合富文本编辑器TinyMce的方法
Nov 30 Javascript
微信小程序聊天功能的示例代码
Jan 13 Javascript
JavaScript中Object、map、weakmap的区别分析
Dec 15 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
同一空间绑定多个域名而实现访问不同页面的PHP代码
2006/12/06 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
介绍Python的Urllib库的一些高级用法
2015/04/30 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
python如何获取apk的packagename和activity
2020/01/10 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
索桥的故事教学反思
2014/02/06 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
音乐研修感悟
2015/11/18 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers