小测试来检验一下你原型链理解的怎么样。
var Person = function(name){this.name = name; };Person.prototype.getName = function(){return this.name; }var person1 = new person('Mick');person1.getName();
提问:
person1.__proto__ 是什么?
Person.__proto__ 是什么?
Person.prototype.__proto__ 是什么?
Object
.__proto__ 是什么?
Object
.prototype__proto__ 是什么?
答案:
第一题:
因为 person1.__proto__ === person1 的构造函数.prototype
因为 person1的构造函数 === Person
所以 person1.__proto__ === Person.prototype
第二题:
因为 Person.__proto__ === Person的构造函数.prototype
因为 Person的构造函数 === Function
所以 Person.__proto__ === Function.prototype
第三题:
Person.prototype
是一个普通对象,我们无需关注它有哪些属性,只要记住它是一个普通对象。
因为一个普通对象的构造函数 === Object
所以 Person.prototype.__proto__ === Object.prototype
第四题,参照第二题,因为 Person 和 Object 一样都是构造函数
第五题:
Object.prototype
对象也有proto属性,但它比较特殊,为 null 。因为 null 处于原型链的顶端,这个只能记住。
Object.prototype.__proto__ === null
JS 在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__
的内置属性,用于指向创建它的构造函数的原型对象。
对象 person1 有一个 __proto__
属性,创建它的构造函数是 Person,构造函数的原型对象是 Person.prototype ,所以:
person1.__proto__ == Person.prototype
所有函数对象的__proto__都指向Function.prototype,它是一个空函数(Empty function);
引用了下面的内容: 作者:Yi罐可乐链接:http://www.jianshu.com/p/652991a67186來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
转载于:https://www.cnblogs.com/wangxi01/p/7872563.html
小测试来检验一下你原型链理解的怎么样。相关推荐
- ES5常用的组合继承及原型链理解
ES5常用的组合继承及原型链理解 <!DOCTYPE html> <html lang="en"><head><meta charset= ...
- 完美解决原型和原型链理解问题
理解原型和原型链 原型和原型链学了很久,但是一直没有完全理解,虽然现在也没用完全理解,但能勉强对付一下了 这里面先参考一下 阮大大的教程 前言 要先从继承开始讲起,根据其他语言比如java或者c++来 ...
- 原型、原型对象、构造函数、原型链理解
1. 基本概念: "原型属性"也可以叫做"原型"(prototype):所有函数都有prototype,我觉得可以理解为python中的类属性,不需要通过实例, ...
- JS原型链理解与实用
关于JS的原型链自己也简单总结一下! 首先先上一张图,我第一次看这张图的时候原本就懵的我更懵了.可是我想说的是,尽管再懵,也还是要慢慢自己理解,最后才能拨开云雾见天日. 目前看不清除图没关系.先解释两 ...
- js原型对象和原型链理解
参考:https://blog.csdn.net/yucihent/article/details/79424506 文章内的图是参考一个大神的 但是找不到链接了 一. 函数对象 所有引用类型(函数, ...
- JavaScript 原型对象和原型链理解
一个例子让你彻底明白原型对象和原型链 1. 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很 ...
- JS原型与原型链理解
前几天在看那个OL3的控件封装,感觉对愿原型和原型链有点忘记,js本身是没有类这个概念,所谓函数即对象,继承这个东西主要通过对象来完成,要是在C#,Java这类语言中这个就很好理解的 一,函数对象 ...
- JavaScript的原型与原型链理解
简单描述了原型与原型链的理解,欢迎学习讨论. 构造函数 function A(){} 原型 构造函数都有prototype原型属性 A.prototype.name = 'wjx' 原型的 const ...
- 最详细的讲解 JS 原型与原型链
文章目录 一. 普通对象与函数对象 二. 构造函数 三. 原型对象 四. proto 五. 构造器 六. 原型链 七. Prototype 总结 一. 普通对象与函数对象 JavaScript 中,万 ...
最新文章
- python入门第二天__练习题
- UA MATH567 高维统计I 概率不等式3 亚高斯性与亚高斯范数
- 科大星云诗社动态20220110
- python的列表和元组
- ​电赛 | 19年全国一等奖,北航学子回忆录(上)
- 调用wasm_PDX Utopia区块链协议栈使用Solidity调用wasm智能合约
- Android修改项目包名
- 一块GPU模拟猴子大脑,普通台式机变超算,英国大学研究登上Nature子刊
- centos 安装mysql扩展_centos php安装mysql扩展的方法
- 反思 大班 快乐的机器人_幼儿园大班健康教案《有趣的椅子》含反思
- CXF生成本地ws调用代码测试webservice
- Error configuring application listener of class org.springframework.web.context.ContextLoaderListene
- centos7中使用LVM管理磁盘和挂载磁盘
- 空气投影+生物识别,支付宝的“如影计划”还有多少硬仗要打?
- svn 回滚文件修改
- 【python+selenium】保留浏览器的自定义设置,不恢复浏览器默认设置
- Android TextView设置背景色和边框
- 生活中的思维导图—读后感
- 【第三方互联】9、新浪微博(sina)授权第三方登录
- 【Verilog基础】CDC跨时钟域问题,个人理解总结(下)(数据丢失、多路扇出、异步复位解决方案)
热门文章
- 网站显示mysql数据库_如何显示从MySQL数据库的网站iframe?
- eclipse 的习惯配置
- 【旧文章搬运】Windbg+Vmware驱动调试入门(一)---Windbg的设置
- Missing message for key xxx in bundle (default bundle) for locale zh_CN
- mysql--字段--索引的增删改查
- 《JS权威指南学习总结--第八章 函数》
- echo,printr,print_r之间的区别
- Snow White,摘自iOS应用Snow White and more stories
- 用vue制作饿了么首页(1)
- tomcat 和apache的整合的方法及配置(一)