JS:构造函数和原型

news2024/9/29 18:41:33

目录

1.构造函数和原型

1.1 概述

1.2 构造函数

1.2.1创建

1.2.2 静态成员和实例成员

1.3 构造函数原型 prototype

1.4 对象原型_proto_

1.5 constructor 构造函数

1.6 构造函数、实例、原型对象的关系

1.7 原型链

2. 继承

2.1 call()


1.构造函数和原型

1.1 概述

在ES6前,对象不是类创建的,是构造函数创建的

构造函数是一种特殊的函数,主要用来初始化对象(为对象成员变量赋初始值)

1.2 构造函数

1.2.1创建

创建对象三方法:

  1. new object()创建
  2. 对象字面量创建{}
  3. 构造函数创建

        function 构造函数名() {

            this.属性=值;

            this.方法=function(){}

        }

  • 创建构造函数时首字母要大写
  • 构造函数和new 一起使用才有意义(实例化对象)

1.2.2 静态成员和实例成员

构造函数可以添加成员,通过内部this上添加的成员分为静态成员和实例成员

  • 静态成员:在构造函数本上添加的成员,只能由构造函数本身访问
  • 实例成员:在构造函数内部创建对象上的成员,只能由实例化的对象访问
 <script>
        function Stars(uname, uage, usex) {
            this.uname = uname;
            this.age = uage;
            this.sex = usex;
            this.sing = function () {
                console.log();
            }
        }
        Stars.type='people'
        // uname,age,sex,sing是实例化成员
        // type是静态成员
    </script>

1.3 构造函数原型 prototype

  • 构造函数会存在内存浪费问题
  • 构造函数通过原型分配的函数是所有对象所共享的
  • 每一个构造韩式都有一个prototype 属性,指向另一个对象 
  • 把不变的方法直接定义在prototype 对象上,所有对象通的实例可以共享它
        function Stars(uname, uage, usex) {
            this.uname = uname;
            this.age = uage;
            this.sex = usex;
            // this.sing = function () {
            //      console.log('sing');
            // }
        }
        Stars.prototype.sing=function(){
            console.log('sing');
        }

1.4 对象原型_proto_

  • 对象都有一个_proto_属性指向构造函数的prototype原型对象
  • _proto_对象原型和原型对象prototype是等价的

1.5 constructor 构造函数

对象原型(_proto_)和构造函数(prototype)原型对象都有constructor属性,称为构造函数,

1.6 构造函数、实例、原型对象的关系

1.7 原型链

 JavaScript的成员查找机制是按照原型链查找的

2. 继承

在ES6前没有extends继承,是通过构造函数+原型对象模拟实现继承,称组合继承

2.1 call()

调用这个函数,并且修改函数运行的this指向

fun.call(thisArg,arg1,arg2...)

  • thisArg: 当前调用函数this的指向对象
  • arg: 传递的参数

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenStack

名词解释RAM 身份验证管理SDN 软件定义网络虚拟化为什么openstack清一色的KVM&#xff1f;KVM属于redhat&#xff0c;开源可定制nentron实现SDNSDN实现了东西向流量管理&#xff08;VPC与VPC的流量管理&#xff09;SDNVXLan实现隧道网络&#xff08;对等连接&#xff09;SDN在公…

【郭东白架构课 模块一:生存法则】04|法则二:架构师为什么要学习马斯洛的需求理论?

你好&#xff0c;我是郭东白&#xff0c;今天我们来聊聊架构师的第二个生存法则&#xff1a;架构活动需要尊重和顺应人性。 自从学习计算机专业的那一天起&#xff0c;我们似乎就走入了一个简单直接的机器世界&#xff0c;一个完全靠逻辑和数字主宰的世界。于是我们总不自觉地认…

如何将数据库结构导入到word

在navicat执行查询语句 SELECT COLUMN_NAME 备注, COLUMN_COMMENT 名称, COLUMN_TYPE 数据类型, false as 是键 FROM INFORMATION_SCHEMA.COLUMNS where -- wx 为数据库名称&#xff0c;到时候只需要修改成你要导出表结构的数据库即可 table_schema yuncourt_ai AND -- articl…

蓝库云|制造业数字化转型为何转不动?资料处理很重要

数字化转型已经成为每个产业势在必行的课题&#xff0c;没有人会怀疑数字化技术与科技能解放的生产力能量&#xff0c;但为什么看似美好的愿景&#xff0c;实行起来却如此缓慢&#xff1f;蓝库云认为这是因为没有盖好「资料治理」的地基。 面对不断变化的法令规范要求&#xf…

<<Java开发环境配置>>7-Apache Tomcat安装教程环境变量配置IDEA配置

一.Apache Tomcat简介: Apache是普通服务器&#xff0c;本身只支持html即普通网页。不仅可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页&#xff0c;但像php,cgi,jsp等动态网页就需要Tomc…

无需端口映射,快解析外网访问U8C

U8C是用友针对成长型、创新型企业&#xff0c;提供企业级ERP整体解决方案&#xff0c;支持多组织业务协同、营销创新、智能财务、人力服务&#xff0c;构建产业链制造平台&#xff0c;实现企业互联网资源连接、共享、协同。 在系统实施过程中&#xff0c;多数企业想要自主掌握企…

分支管理方案

背景 在工作的过程中&#xff0c;git管理方式已经成为每一个项目开发的基础&#xff0c;每个项目的开发都离不开git管理方式。 但是在使用的过程中&#xff0c;由于对git分支管理方案的了解不深&#xff0c;导致会出现分支管理不明确的情况。 本文主要是做科普作用&#xff…

c++类与对象

1.类的定义 2.类的构造函数 1.函数名与类名相同 2.无返回值 3.对象实例化时编译器会自己调用构造函数 4.构造函数可以重载 5.没有显示定义时&#xff0c;编译器会自动调用一个无参的默认构造函数&#xff0c;一旦写显示则不生成 6.对于内置类型构造函数不做处理&#xff0c;对于…

麒麟 arm架构安装nginx

目录 1、下载nginx安装包并解压 在线安装&#xff1a; 离线安装&#xff1a; 上传nginx安装包&#xff08;下载地址&#xff1a;https://nginx.org/download/nginx-1.20.2.tar.gz&#xff09;到指定目录 2、安装系统相关依赖软件、组件包 1、上传或者下载对应的组件包 2、安…

SQL 中的窗口函数

SQL 中的窗口函数&#xff08;Window Functions&#xff09;是一种特殊的函数&#xff0c;它可以在查询结果的某个区间内执行计算&#xff0c;而不仅仅是对单个行进行计算。 以下是一些常用的窗口函数&#xff1a; 1、ROW_NUMBER() ROW_NUMBER() 函数可以给查询结果的每一行…

C语言常见关键字

写在前面 这个博客是结合C语言深度解剖这本书和我以前学的知识综合而成的,我希望可以更见详细的谈一下C语言的关键字,内容有点多,有错误还请斧正. 常见关键字 下面我们说下C语言的关键字,所谓的关键字是指具有特定功能的单词,我们可以使用关键字来帮助我们完成不同的事物.C语…

win系统电脑如何打开sketch?

2 个方法快速使用 Windows 系统打开 Sketch 文件&#xff1a;使用 Adobe XD 打开 Sketch 文件或者使用浏览器中就能做设计的即时设计直接打开 Sketch 文件。众所周知&#xff0c; Sketch 只能在 Mac 电脑上使用&#xff0c;因此只有借助 XD 这种能在 Windows 系统启动的软件工具…

LSTM原理解析

一、背景 前文讲了RNN的基本原理&#xff0c;可以发现RNN是一个比较简单的神经网络结构&#xff0c;虽然为文本和时间序列的建模提供了一个很好的思路&#xff0c;但是也有一定的局限性。最直观的就是使用了Tanh函数造成梯度消失的问题。 根据Tanh的性质&#xff0c;很容易出…

树莓派Bullseye版本更新

1、参考链接&#xff1a;树莓派11bullseye换源/Opencv安装_所罗门大帝的博客-CSDN博客 2、参考链接&#xff1a;https://blog.csdn.net/weixin_39589455/article/details/124514099 步骤1、使用镜像帮助&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/ 步骤…

面试题 链表相交 -剑指offer简单

面试题 链表相交 题目链接 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#…

DIY生日蛋糕笔记

自制6寸生日蛋糕笔记 实验环境&#xff1a; 长帝CRTF32PD搪瓷烤箱32升&#xff0c; 九阳电动打蛋器&#xff0c; 裱花盘一套 蛋糕盒子 称重器 硅胶刀 两个大碗1号和2号。 材料&#xff1a; 参考&#xff1a; https://www.bilibili.com/video/BV1t34y1Z7mL/?spm_id_from333…

揭开苹果供应链,如何将其命运与中国深度捆绑

前 言 诺基亚在2007年时拥有9亿用户&#xff0c;在手机市场上占据主导地位&#xff0c;福布斯在当时以“谁能赶上手机之王&#xff1f;”为标题刊登了一篇关于该公司的报道&#xff0c;与此同时&#xff0c;苹果公司推出了iPhone系列产品。16年后&#xff0c;苹果公司以充足的…

如何解锁华为手机PIN/图案/指纹/人脸锁?

您的手机存储主要数据&#xff0c;因此为您的设备设置安全代码让您高枕无忧。屏幕和生物识别锁可在手机丢失时保护您的手机&#xff0c;并使其在被盗时无法访问。每次您需要密码来解锁手机时&#xff0c;但如果您被锁在密码之外怎么办&#xff1f; 今天的话题将独家帮助华为用…

ChatGPT引发的新一轮网络安全威胁,要如何应对?

近期随着美国ChatGPT横空出世&#xff0c;沉寂一时的人工智能领域再次掀起波澜&#xff0c;引起社会的广泛关注&#xff0c;仅在短短数月内&#xff0c;ChatGPT的注册用户就超过数亿。作为一款免费的聊天机器人&#xff0c;它几乎可以回答任何问题。和搜索引擎不同的是&#xf…

JavaSE 文件内容的读写

读文件和写文件有俩种风格的操作&#xff08;俩组不同的类&#xff09; 字节流 InputStream&#xff08;负责读&#xff09;/ OutputStream &#xff08;负责写&#xff09;~~针对二进制文件进行读写&#xff0c;操作基本单位是字节。字符流 Reader(负责读&#xff09;/ Write…