js高级 笔记01

01 静态成员和实例成员

        构造函数中的属性和方法我们称之为成员 成员是可以添加的

        通过构造函数new出来的对象叫做实例化对象

                实例成员就是构造函数内部通过this添加的对象       

                实例成员只能通过实例化对象去访问  不能通过构造函数去访问

         静态成员 是在构造函数本身上添加的成员  不能通过实例化对象去访问

02 原型对象

        在构造函数里有prototype属性 也叫做原型对象 共享的方法都放到原型对象里面

        原型是一个对象 我们称prototype为原型对象(构造函数的一个属性)

        原型对象的作用是  共享方法  不需要开辟内存空间

        一般情况下 我们把公共属性放到构造函数里面  公共方法放到我们的原型对象里面

03 对象原型

        为什么实例化对象能使用构造函数的原型对象里面的方法呢?

                因为对象里面有一个系统自带的属性__proto__ 指向了构造函数的原型对象

        prototype原型对象

        __proto__对象原型

                指向的是构造函数的原型对象 但他是非标准的属性

                在实际开发中 不可以使用这个属性 这个属性只是指明了一条路线

04 constructor

        构造函数方法比较多的时候  往原型对象中添加 用对象的形式去写

        如果我们修改了原型对象  给原型对象赋值了一个新对象的时候导致原来的constructor没有了

        所以我们必须手动的利用constructor指回原来的构造函数

05 原型链

        只要是对象就有__proto__属性 指向 原型对象

        原型对象里面的__proto__指向的是Object.prototype(object的实例化对象)

        object.prototype原型对象里面有__proto__指向的是null

        这个链条就叫做原型链

        原型链上面的成员查找规则是  就近原则

        原型对象中的this指向实例化对象

06 call方法

        call( ) 可以调用函数

        call( ) 可以改变这个函数的this指向

    function fn(x,y){
        console.log('');
        console.log(this);
        console.log(x+y);
    }

    var obj={
        name:'狗蛋'
    }
    
    fn.call(obj,1,2)
    //以上调用 函数的this指向了obj这个对象 后面的就是普通参数
    

07 借用原型对象继承方法
    //父构造函数
    function Father(uname,age){
        this.uname=uname
        this.age=age 
     }
    //能挣钱
    Father.prototype.money=function(){
        console.log(100000);
    }
    // 子构造函数
    function Son(uname,age,score){
        Father.call(this,uname,age)
        this.score=score
    }

    // Son.prototype=Father.prototype
    //因为这样赋值之后 两个原型对象的内存地址相同了 然后一改全改
    // 如果按照上面的直接赋值绘存在问题  子原型对象修改了 父原型对象也跟着修改了  
                                                      
    Son.prototype=new Father();
    //实例化了父构造函数  赋值给了子构造函数的原型对象
    // 父实例化对象可以访问父原型对象的方法 因为有__proto__的存在  
    // 子实例化对象本身没有这个方法 去子构造函数的原型对象上面找 也没有 然后发现
    // 子原型对象指向了父的实例化对象  父的实例化对象有一个__proto__指向了父的原型对象
    // 然后父的原型对象上面有这个方法了  所以就可以继承了
    // 子构造函数有他自己的专门的方法

    Son.prototype.constructor=Son
    Son.prototype.exam=function(){
        console.log('孩子要考试');
    }
    var son=new Son('小黑',10,100)
    console.log(son);
    son.money()
    son.exam()
    console.log(Father.prototype);
    console.log(Son.prototype.constructor);

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Yolov系列】Yolov5学习(一)补充2:自适应锚框计算详解+代码注释

一、自适应锚框计算详解 自适应锚框计算的具体过程: ①获取数据集中所有目标的宽和高。 ②将每张图片中按照等比例缩放的方式到 resize 指定大小,这里保证宽高中的最大值符合指定大小。 ③将 bboxes 从相对坐标改成绝对坐标,这里…

预印本仓库ArXiv——防止论文录用前被别人剽窃

文章目录 一、什么是预印本二、什么是ArXiv2.1 ArXiv的领域2.2 如何使用 一、什么是预印本 预印本(Preprint)是指科研工作者的研究成果还未在正式出版物上发表,而出于和同行交流目的自愿先在学术会议上或通过互联网发布的科研论文、科技报告…

SQL Server 2022 安装及使用

SQL Server 2022 前言一、安装SQL Server 2022下载SQL Server 2022安装SQL Server 2022配置SQL Server 2022 二、安装SQL Server Management Studio下载SQL Server Management Studio安装SSMS-Setup-CHS 三、使用SQL Server 2022四、解决连接到服务器报错问题 前言 SQL Serve…

轻松get!分享4种关于iPhone通话记录怎么查询的方法

想要轻松了解你的iPhone通话记录?通话记录怎么查询?不用担心,我们在这篇文章中将分享四种简单有效的方法,帮助你查询iPhone上的通话记录。 无论是查看最近的通话记录还是检索特定日期范围内的通话历史,这些方法都能帮…

AI:162-如何使用Python进行图像识别与处理深度学习与卷积神经网络的应用

本文收录于专栏:精通AI实战千例专栏合集 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正…

AI大模型日报#0418:Stable Diffusion 3开放API、Meta新研究让AI Agent理解物理世界

导读: 欢迎阅读《AI大模型日报》,内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 微软刚发布了VASA-1 这个人工智能可以让单张图像具有生动的说话和歌唱能力 摘要: 微软发布了VASA-1人工智能,它能使单…

宿舍预付费管控云平台

1.宿舍预付费管控云平台概述 宿舍预付费管控云平台是一种创新的智能管理系统,专为学校、公寓等住宿环境设计,旨在提升管理效率,优化用户体验,并实现资源的高效利用。通过云端技术,该平台可以实现远程充值、实时消费记…

跨平台SIP 客户端-linphone下载、使用、开启视频H264

linphone 介绍 Linphone 是一种开源的语音和视频通信应用程序,它提供了基于互联网协议(IP)的实时通信功能。用于语音/视频通话、即时消息和电话会议的开源 SIP 电话。它适用于移动和桌面环境(iOS、Android、GNU/Linux、macOS、Win…

【UE 材质】雨滴效果

在上一篇博客(【UE 材质】表面湿润效果)的基础上继续实现物体表面附加雨滴的效果 效果 步骤 1. 下载所需纹理 2. 创建一个材质并打开,添加如下节点,我们将纹理的RG通道输出的值和1组成一个三维向量,作为基本的法线效…

基于Bpmnjs适配Flowable的流程设计器

Flowable在7.x的版本就不提供流程设计器UI,为了广大流程爱好者能更好的使用Flowable,开发了一套完全适配Flowable的bpmnjs的流程设计流程设计器 支持开始事件支持结束事件支持边界事件支持中间事件支持网关事件支持子流程支持泳道泳池扩展微服务组件扩展…

C语言中的控制语句(分支语句 if、switch、三目运算符)

程序执行的三大流程 顺序 : 从上向下, 顺序执行代码分支 : 根据条件判断, 决定执行代码的分支循环 : 让特定代码重复的执行 分支语句 条件语句用来根据不同的条件来执行不同的语句,C语言中常用的条件语句包括if语句和switch语句。 if 语句…

lua 环境安装

下载地址: https://luabinaries.sourceforge.net/download.html 安装环境变量 检查一下是否安装成功,有版本号,打印一句话,如下表示成功 idea 安装插件,方便编写lua脚本 配置一下idea 运行测试 local function m…

python处理IP对应城市省份

python处理IP对应城市省份 IP地理地址库geoip2用法 数据包下载 数据包下载地址(需要注册) https://www.maxmind.com/en/accounts/258630/geoip/downloads 考虑到注册麻烦,可以到下面这个github的链接去直接下载 https://github.com/Hackl0…

LINUX网卡一般性问题分析

一、网卡相关概念 网卡:网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。 网络模型:OSI网络模型、TCP/IP网络模型 LINUX网络收发流程: 1. 内核分配一个主内存地址段(DMA缓冲区),网卡设备可以在…

混合云自动化优势有哪些?

随着云计算领域变得更加动态,全球各地的组织都开始将混合云作为其IT基础设施效率、灵活性、安全性、可扩展性和成本效益的支柱。混合云将本地数据中心与公有云结合起来,为企业提供了灵活性和可扩展性,同时又能满足其对安全性、合规性和控制力…

整除分块(上下取整)

参考: 整除分块 - 知乎 董晓算法 G33 整除分块(数论分块) 图都是摘的上面的。 整除分块 整除分块是数论中的一个知识点。一个整除式子在分母不固定的时候,得到的结果也有可能不同,但是因为是整除,所以…

登录解析(前端)

登录代码 1、登录之后做了什么? 执行登陆方法,成功之后,路由跳转到指定路径或者根目录 2、this.$store.dispatch是什么意思? this.$store.dispatch(‘Login’, this.loginForm) 来调取store里的user.js的login方法3、this.$r…

【学习】自动化测试有哪些优势和不足

在当今这个数字化时代,软件测试已经成为了任何一款产品成功的关键因素之一。而在诸多的测试方法中,自动化测试凭借着其独特的魅力吸引着越来越多的企业。今天就让我们一起走进自动化测试的世界,探讨它的优势与不足。 一、自动化测试优势 1.…

强化学习入门之MDP

系列文章目录 第一章 强化学习入门之基本概念 第二章 强化学习入门之MDP 强化学习入门之MDP 系列文章目录前言1. 简介1.1 状态值函数1.2 状态动作值函数1.3 策略 2. 最优策略求解2.1 思想2.2 策略评估2.3 策略改进 3. 最优值函数求解 前言 我们已经知道使用MDP来对强化学习进…

对比实验系列:Efficientdet环境配置及训练个人数据集

一、源码下载 可以通过下方链接下载Efficientdet源码 GitHub - zylo117/Yet-Another-EfficientDet-Pytorch: The pytorch re-implement of the official efficientdet with SOTA performance in real time and pretrained weights.The pytorch re-implement of the official …
最新文章