关于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 相关文章推荐
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
javascript:window.open弹出窗口的位置问题
Mar 18 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
Jun 01 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
Three.js基础部分学习
Jan 08 Javascript
常用的9个JavaScript图表库详解
Dec 19 Javascript
深入理解Vue router的部分高级用法
Aug 15 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
javascript的delete运算符知识点总结
Nov 19 Javascript
JavaScript计算正方形面积
Nov 26 Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 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操作数组相关函数
2011/02/03 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
python实现用户答题功能
2018/01/17 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
python join方法使用详解
2019/07/30 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
浅谈python锁与死锁问题
2020/08/14 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
广州某公司软件工程师面试题
2014/12/22 面试题
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
部队党性分析材料
2014/02/16 职场文书
学校督导评估方案
2014/06/10 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
施工安全协议书
2016/03/22 职场文书
Ruby处理YAML和json数据
2022/04/18 Ruby