码农知识堂 - 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. 一个函数即有显示属性也有隐式属性。

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

  • 相关阅读:
    Python算法练习 10.23
    【网站架构】1小时1亿订单是否能扛住?压力、性能测试的步骤
    机器学习的特征工程
    基于Redis的分布式锁安全吗?(上)
    前端实战|React18极客园——项目打包与优化
    flink实现kafka、doris精准一次说明
    干货 Flops Mutli-adds MACs
    代码随想录算法训练营第四十四天| LeetCode518. 零钱兑换 II、LeetCode377. 组合总和 Ⅳ
    我今年50岁了,还在干前端
    数据结构-排序算法总结
  • 原文地址:https://blog.csdn.net/m0_72383454/article/details/126677581
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号