关于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高亮效果的二种实现方法
Sep 14 Javascript
jquery中ajax调用json数据的使用说明
Mar 17 Javascript
php 中序列化和json使用介绍
Jul 08 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
Dec 11 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
Jun 03 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
Nov 17 Javascript
jQuery对象与DOM对象转换方法详解
May 10 Javascript
javascript简单实现等比例缩小图片的方法
Jul 27 Javascript
jquery Ajax 全局调用封装实例详解
Jan 16 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
Aug 24 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
webpack中的模式(mode)使用详解
Feb 20 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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
7个JS基础知识总结
2014/03/05 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
python链接Oracle数据库的方法
2015/06/28 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
Python中logging实例讲解
2019/01/17 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
最新大学生创业计划书写作攻略
2014/04/02 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年减负工作总结
2014/12/10 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
Python torch.flatten()函数案例详解
2021/08/30 Python