关于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 实现父窗口引用弹出窗口的值的脚本
Aug 07 Javascript
javascript textarea光标定位方法(兼容IE和FF)
Mar 12 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
Feb 20 Javascript
JavaScript 事件绑定及深入
Apr 13 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
Aug 25 Javascript
11行JS代码制作二维码生成功能
Mar 09 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
详解如何创建并发布一个 vue 组件
Nov 08 Javascript
微信小程序实现多选删除列表数据功能示例
Jan 15 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
vue在线动态切换主题色方案
Mar 26 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实现文件安全下载
2006/10/09 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
Python Logging 日志记录入门学习
2018/06/02 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
python实现简单文件读写函数
2021/02/25 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
中国梦演讲稿教师篇
2014/04/23 职场文书
代领毕业证委托书
2014/08/02 职场文书
防暑降温通知书
2015/04/27 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS
Java使用JMeter进行高并发测试
2021/11/23 Java/Android