首页 > 其他分享 >JS原型与原型链

JS原型与原型链

时间:2023-01-29 16:14:03浏览次数:34  
标签:Foo 属性 proto JS 原型 prototype 构造函数

JS原型与原型链

1、理解原型

1、所有的引用类型(数组、函数、对象)可以自由扩展属性(除null以外)

2、所有的引用都有一个 " proto" 属性(也叫隐式原型,它是一个普通的对象)

3、所有的函数都有一个“prototype”属性(这也叫显式原型,它也是一个普通的对象)

4、所有的引用类型,它的‘proto’属性指向它的构造函数prototype属性

5、当试图得到一个对象的属性时,如果这个对象本身不存在这个属性,那么就去它的‘proto’属性(也就是它的构造函数中prototype属性)中去寻找

2、原型链

image

fn的构造函数是Foo():  fn.__proto__ === Foo.prototype
Foo.prototype的构造函数是Object :  Foo.prototype.__proto__ === Object.prototype
从图上来看,我们知道toString() 方法是在Object.prototype里面的,当调用的这个对象本身不存在这个方法时,他会一层一层向上找,直到找到null为止。这就是原型链的机制

标签:Foo,属性,proto,JS,原型,prototype,构造函数
From: https://www.cnblogs.com/yapirong/p/17072953.html

相关文章

  • .eslintrc.json
    "extends":["eslint:recommended","plugin:react/recommended","plugin:@typescript-eslint/recommended"],"rules":{"import/no-extraneous-dependencies......
  • stylelint.config.js
    module.exports={extends:['stylelint-config-standard-scss'],plugins:['stylelint-scss'],rules:{indentation:[2],'max-empty-lines':1,......
  • Node.js 安装配置
    本章节我们将向大家介绍在Windows和Linux上安装Node.js的方法。本安装教程以Node.jsv4.4.3LTS(长期支持版本)版本为例。Node.js安装包及源码下载地址为:https:/......
  • Servlet和JSP之间的区别
    Servlet和JSP之间的区别简单来说,Servlet是Java中的Html,JSP是Html中的Java。JSP和Servlet的主要目的是相同的,但是两者还是有些重要的区别。 1、Servlet和JSP之间的区别......
  • js判断多个区间是否有交叉重叠
    <scripttype="text/javascript">/**思路:把开始日期、结束日期分别存进两个数组,从开始时间的第二个元素去比较结束时间的第一个元素。*......
  • Angularjs的工程化
    Angularjs的工程化AMD规范和CMD规范为什么需要模块化管理工具在编写项目时可能需要加载很多js文件,若b.js依赖a.js,且a.js比b.js大很多,那么浏览器会让b.js等待a.js加载完......
  • js 比较两个时间相差的天数
    util.TowTimeDayFormat=function(time1,time2){lettotalDays,diffDatevarday1=Date.parse(time1)varday2=Date.parse(time2)//将两个......
  • Json.NET 序列化解析
    Json.NET是一款.NET平台的JSON框架,它还有一个我们熟知的名字:Newtonsoft.Json。1.介绍Json.NET有如下功能及特点:灵活的JSON序列化器,用于.NET对象和JSON之间......
  • SpringBoot中读取JSON文件信息并转换为Map对象
    SpringBoot中读取JSON文件信息并转换为Map对象需要引入的依赖<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2<......
  • ExtJS-自定义事件(观察者模式)实现
    更新记录2023年1月6日从笔记迁移到博客。转载请注明出处:ExtJS教程汇总:https://www.cnblogs.com/cqpanda/p/16328016.html使用Ext.util.Observable类型即可。代码......