码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JS | 函数高级之原型、原型链


    目录

    一、原型

    二、显式原型与隐式原型

    三、原型链

    四、注意点


    我感觉原型链还是比较重要的,但是老师上课的时候一带而过,有点懵逼,所以在这里稍微概括一下,更复杂的图也没有在这里Po出来,但是这些应该够用,希望对大家有点用处。

    一、原型

    1. 每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为:原型对象);原型对象中有一个属性constructor,它指向函数对象。
    2. 给原型对象添加属性(一般都是方法)。作用:函数的所有实例对象自动拥有原型上的属性(方法)

    图释: 

     代码:

    假设有一个Date函数,那么 Date.prototype.constructor === Date

    二、显式原型与隐式原型

    1. 每个函数function都有一个prototype,即显式原型(属性)
    2. 每个实例对象都有一个__proto__,可称为隐式原型(属性)
    3. 对象的隐式原型的值为其对应函数的显式原型的值 (函数.prototype === 实例对象.__proto__)
    4. 内存结构 

     总结:

    • 构造函数的prototype属性:在定义函数时自动添加的,默认值是一个空Object对象
    • 实例对象的__proto__属性:创建对象时自动添加的,默认值为构造函数的prototype属性值
    • 程序员能直接操作显式原型,但不能直接操作隐式原型(ES6之前)

    三、原型链

    访问一个对象的属性时,先在自身属性中查找,找到返回,如果没有,再沿着__proto__这条链向上查找,找到返回,如果最终没有找到,返回undefined。所以说原型链是一个隐式原型链,它的作用就是查找对象上的属性(方法)

    四、注意点

    1. 函数的显示原型指向的对象默认是空Object实例对象(但Object不满足)
    2. 所有函数都是Function的实例(包含Function),因为所有的函数都是new Function出来的,所以所有函数的__proto__都一样
    3. Object的原型对象是原型链的尽头(Object.prototype.__proto__ = null)
    4. 一个函数即有显示属性也有隐式属性。

    好啦,今天主要就是讲了一下原型、显示原型/隐式原型以及原型链,拜比~

  • 相关阅读:
    Vue的transition组件
    制作搞笑聊天视频的新神器,全自动搞笑聊天对话视频生成器!
    李沐大神动手学深度学习——学习笔记(连载)
    浮点数保留指定位数的小数,小数位自动去掉多余的0
    三表联查(怎么把表1中存在但表2表3不存在的姓名查找出来)
    前端技术-并发请求
    [MRCTF2020]你传你呢1
    Java代码基础算法练习-判断学生成绩等级-2024.06.28
    工程水文学名词解释总结
    vue中如何给特殊字段设置插槽
  • 原文地址:https://blog.csdn.net/m0_72383454/article/details/126677581
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号