关于Javascript 对象(object)的prototype

 更新时间:2014年05月09日 09:43:01   作者:  
Javascript中的每个对象(object)都会有 prototype,下面为大家介绍下其具体的应用
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 属性。

相关文章

  • 给页面渲染时间加速 干掉Dom Level 0 Event

    给页面渲染时间加速 干掉Dom Level 0 Event

    我们去掉事件绑定的逻辑,发现只渲染dom元素,不绑定事件的时间,仅仅125ms,可见事件绑定的时间消耗还是很大的 ,尤其是第一种方式,也就是Dom Level 0 Event,最为耗时
    2012-12-12
  • 微信小程序多文件上传 Tdesign及导入失败问题

    微信小程序多文件上传 Tdesign及导入失败问题

    小程序文件上传还是有点麻烦的,其实主要还是小程序对的接口有诸多的不便,比如说,文件不能批量提交,只能一个个的提交,小程序的上传需要专门的接口,这篇文章主要介绍了微信小程序多文件上传 Tdesign及导入失败问题,需要的朋友可以参考下
    2023-11-11
  • js 实现碰撞检测的示例

    js 实现碰撞检测的示例

    这篇文章主要介绍了js 实现碰撞检测的示例,帮助大家更好的制作js特效,美化自身网页,感兴趣的朋友可以了解下
    2020-10-10
  • js实现文本框宽度自适应文本宽度的方法

    js实现文本框宽度自适应文本宽度的方法

    这篇文章主要介绍了js实现文本框宽度自适应文本宽度的方法,可实现根据文本框内容动态改变宽度的功能,涉及javascript动态操作页面元素属性的技巧,需要的朋友可以参考下
    2015-08-08
  • js阻止默认浏览器行为与冒泡行为的实现代码

    js阻止默认浏览器行为与冒泡行为的实现代码

    下面小编就为大家带来一篇js阻止默认浏览器行为与冒泡行为的实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • 原生js和jQuery随意改变div属性style的名称和值

    原生js和jQuery随意改变div属性style的名称和值

    用原生js和jQuery实现改变随意改变div属性style的名称和值的结果,这个实例比较实用,新手朋友们可以看看
    2014-10-10
  • axios的简单封装以及使用实例代码

    axios的简单封装以及使用实例代码

    一般我们在做一个大型项目的时候,需要用到很多接口时,我们为了方便使用,就把接口封装起来,这篇文章主要给大家介绍了关于axios简单封装以及使用的相关资料,需要的朋友可以参考下
    2021-06-06
  • javascript 计算两个整数的百分比值

    javascript 计算两个整数的百分比值

    用来计算两个整数的百分比值的代码,需要的可以看看。
    2009-12-12
  • 不用typsescript如何使用类型增强功能

    不用typsescript如何使用类型增强功能

    这篇文章主要给大家介绍了关于不用typsescript如何使用类型增强功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 全面解析JavaScript 中 null

    全面解析JavaScript 中 null

    null 是一种原始类型,表示有意不包含任何对象值,在这篇文章中,你将学习关于 JavaScript 中的 null 的一切: 它的含义,如何检测它,null 和 undefined 之间的区别,以及为什么大量使用 null 会造成代码维护困难等,需要的朋友可以参考下
    2022-09-09

最新评论