关于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 相关文章推荐
简单通用的JS滑动门代码
Dec 19 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
Feb 06 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
Jun 27 Javascript
jQuery插件简单实现方法
Jul 18 Javascript
函数window.open实现关闭所有的子窗口
Aug 03 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
Javascript获取图片原始宽度和高度的方法详解
Sep 20 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
Nov 23 Javascript
对node.js中render和send的用法详解
May 14 Javascript
element-ui 关于获取select 的label值方法
Aug 24 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
Feb 15 Javascript
angular中的post请求处理示例详解
Jun 30 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
浅谈php7的重大新特性
2015/10/23 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
javascript创建和存储cookie示例
2014/01/07 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
vue实现评价星星功能
2020/06/30 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
详细介绍Ruby中的正则表达式
2015/04/10 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
Python的collections模块真的很好用
2021/03/01 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
const和static readonly区别
2013/05/20 面试题
产品销售员岗位职责
2013/12/18 职场文书
小学生防溺水广播稿
2014/01/12 职场文书
雪山饭庄的创业计划书范文
2014/01/18 职场文书
小学美术教学反思
2014/02/01 职场文书
党员公开承诺书
2014/03/25 职场文书
党员活动日总结
2014/05/05 职场文书
学生安全承诺书
2014/05/22 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书