关于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 相关文章推荐
Jquery实现图片放大镜效果的思路及代码(自写)
Oct 18 Javascript
微信js-sdk界面操作接口用法示例
Oct 12 Javascript
d3.js实现简单的网络拓扑图实例代码
Nov 06 Javascript
fullCalendar中文API官方文档
Feb 07 Javascript
bootstrap手风琴折叠示例代码分享
May 22 Javascript
js核心基础之构造函数constructor用法实例分析
May 11 Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 Javascript
JavaScript this使用方法图解
Feb 04 Javascript
JavaScript代码异常监控实现过程详解
Feb 17 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
Feb 24 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
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/10/09 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
七款最流行的PHP本地服务器分享
2013/02/19 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
vue中axios的二次封装实例讲解
2019/10/14 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
python登陆asp网站页面的实现代码
2015/01/14 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
python编写分类决策树的代码
2017/12/21 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
Delphi工程师笔试题
2013/09/21 面试题
医大实习自我鉴定
2013/12/07 职场文书
网站美工岗位职责
2014/04/02 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
2014年党务工作总结
2014/11/25 职场文书
音乐会主持人开场白
2015/05/28 职场文书
教师节校长致辞
2015/07/31 职场文书