前端必备基础系列(七)原型/原型链/this

news/2025/1/8 0:25:46/文章来源:https://www.cnblogs.com/codeyx/p/18651687

对象的原型:
JavaScript中每个对象都有一个特殊的内置属性[[prototype]],这个特殊属性指向另外一个对象。
当我们访问一个对象上的某个属性时,首先会检查这个对象自身有没有这个属性,如果没有就会去[[prototype]]指向的对象查找。
那么这个特性就可以帮助我们实现继承了。
如何获取到这个[[prototype]]属性指向的对象?
方法一:通过对象的__proto__属性可以获取到(但这个属性是早期浏览器自己添加的,存在一定兼容性问题),建议开发测试用。
方法二:通过Object.getPrototypeOf方法获取,可以在生产环境使用。

Object.setPrototypeOf(对象,原型) 方法可为某个对象指定原型。(了解即可)

函数的原型:
所有函数都有一个prototype属性

new操作会进行如下四步:
1.创建一个新对象
2.将构造函数的this绑定到这个对象
3.这个对象内部的[[prototype]]属性(一般是__proto__)会被赋值为该构造函数的prototype
4.构造函数返回该对象

原型继承关系图:

this

作用:提供一种在对象方法中引用当前对象的方式。

this是在运行时被绑定的;
默认绑定:当函数在非严格模式下独立调用时,this默认绑定到全局对象(浏览器中是window对象,在Node中是global对象),严格模式下,this是undefined。优先级最低
隐式绑定:当函数作为对象的方法被调用时,this绑定到该对象。
显式绑定:通过call、apply、bind方法,显式指定this绑定的对象。call和apply会立即调用函数并传递this,而bind会返回一个新的函数并绑定着指定的this。优先级高于隐式绑定
new绑定:通过new关键字调用构造函数时,this绑定到新创建的对象实例。优先级高于bind

初以上四种规则外,还需注意箭头函数中:
箭头函数不会创建自己的this,他会使用外部作用域的this值,通常是定义箭头函数时所在的上下文。并且是固定的不能被call等改变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/865067.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cv2.imwrite保存的图像是全黑的

1.保存,全黑的图像cv2.imwrite(img/test.jpg, imutils.resize(enhancedImg, height=151,width=240))2.原因分析 3.原本image是0-255的数值,现在标准化了,全都是0-1之间的数值,还原,乘以255,图片输出正常。cv2.imwrite(img/test1.jpg, imutils.resize(enhancedImg, height…

SaltStack快速入门

Saltstack快速入门 saltstack介绍 Salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯 主要功能:远程执行 配置管理,参考官方文档: http://docs.saltstack.cn/ 安装说明: https://docs.s…

计数问题选讲做题记录

从 $1+1$ 到 $\exp(\sum\limits_{i=1}^k\ln(1+ix))$。计数杂题。calc 考虑先不管数字之间的顺序,最后给答案乘上一个 \(n!\)。 记 \(dp_{i,j}\) 表示前 \(i\) 个数在 \([1,j]\) 之间选,所产生的总贡献,显然有 \(dp_{i,j}=dp_{i,j-1}+j\times dp_{i-1,j-1}\),最后的答案是 \…

如何构建高效的智能体

简单才是王道:构建高效 AI 智能体的秘诀!工作流为简单任务提供可预测性,而智能体在复杂场景中展现灵活性。本指南深入解析如何优化工具设计、选择框架,并平衡复杂性与性能,助你构建可靠且高效的 AI 系统。 如何构建高效的智能体Anthropic 刚刚发布了一份关于“如何构建高…

昆明理工大学计算机891考研复试真题

--昆工昆明理工大学计算机技术人工智能软件工程网络空间安全计算机系统结构计算机软件与理论计算机应用技术网络与信息安全408考研综合程序设计891计算机专业核心综合数据库系统原理

Window迷你网页服务器MyWebServer v3.8.195支持php

前言全局说明Window迷你网页服务器MyWebServer v3.8.195支持php一、说明 1.1 老版本说明、历史版本下载、php下载: https://www.cnblogs.com/wutou/p/18655971二、MyWebServer v3.8.195支持php 2.12.2免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负…

用 2025 年的工具,秒杀了 2022 年的题目。

你好呀,我是歪歪。 前几天打开知乎的时候,在付费咨询模块,我看到了一个差不多两年半前没有回答的技术问题。其实这个问题问的很清晰了,但是当时我拒绝了:虽然过去快两年半的时间,但是我记得还是比较清楚,当时拒绝的理由是如果让我来回答这个问题,我肯定是首选基于 Redi…

VS2022添加Qt窗口类(带.ui文件)

1、项目-属性-右键-添加-模块

基于自抗扰控制器和线性误差反馈控制律(ADRC-LSEF)的控制系统simulink建模与仿真

1.课题概述 基于自抗扰控制器和线性误差反馈控制律(ADRC-LSEF)的控制系统simulink建模与仿真。2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a 4.系统原理简介自抗扰控制器(Active Disturbance Rejection Controller, ADRC)结合线性误差反馈控制律(Linear Error Feedback…

MediaWIKI 1.43 教程系列 4 — MediaWIKI 安装后的基本配置

1. 更改logo 将自己的logo 导入到 Mediawiki 的安装目录,即 /var/www/mediawiki/里面的 /resources/assets 然后修改 LocalSettings.php 文件内容,更改如下$wgLogos = [1x => "$wgResourceBasePath/resources/assets/mediawiki.png",icon => "$wgReso…

在iStoreOS上配置frpc客户端

摘自:https://www.koolcenter.com/posts/224 安装frpc,直接在iStoreOS商店找到全部软件。输入名称点新增:填写ip地址以及端口:web 配置看图: