关于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:window.close()在chrome,Firefox下失效的问题
May 07 Javascript
JQuery的ready函数与JS的onload的区别详解
Nov 21 Javascript
jquery div拖动效果示例代码
Dec 08 Javascript
介绍JavaScript中Math.abs()方法的使用
Jun 14 Javascript
js读取并解析JSON类型数据的方法
Nov 14 Javascript
总结JavaScript中布尔操作符||与&&的使用技巧
Nov 17 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
Aug 15 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
jquery拖动改变div大小
Jul 04 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
Jun 19 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
Oct 14 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
详解Vue中的自定义指令
2020/12/07 Vue.js
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
python的re模块应用实例
2014/09/26 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python使用多进程的实例详解
2018/09/19 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
详解python中__name__的意义以及作用
2019/08/07 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
应用艺术专业个人的自我评价
2014/01/03 职场文书
《口技》教学反思
2014/02/21 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
python flask开发的简单基金查询工具
2021/06/02 Python