JavaScript原型链

<!doctype html>
<html lang="en">
<head>
    <title>&#x539F;&#x578B;</title>
    <script>
    window.onload = function(){
        //apply()  call()区别
        function Cat(name,color){   //猫对象
            this.name = name;
            this.color = color;
        };
        var cat = new Cat();
        var o = {};
        Cat.apply(o,['111','222']);  //Cat函数在O对象中执行
        o.name;//"111"
        //call
        function Cat(name,color){   //猫对象
            this.name = name;
            this.color = color;
        };
        var cat = new Cat();
        var o = {};
        Cat.call(o,'aaa','bbb');  //Cat函数在O对象中执行
        o.name;//"aaa"

        function Animal(){   //动物对象   父
            this.type = '动物'
        };
        Animal.prototype.type2='动物';
        function Cat(name,color){   //猫对象   子
            this.name = name;
            this.color = color;
        };
        Cat.prototype = Animal.prototype;
        var cat = new Cat("大明","黄色");   //实例化
        console.log(cat.type);

        function People() {
            this.name='sonia';
            this.sayName= function() {console.log(this.name)};
        };
        People.prototype.walk="walk";
        var p1=new People();
        p1.name="p1";
        p1.sayName= function() {console.log('p1')};
        var p2=new People();
        p2.name="p1";
        p2.sayName= function() {console.log('p2')};

        //原型链
        function F1(){
            this.name1='1'
        };
        function F2(){
            this.name2='2'
        };
        function F3(){
            this.name3='3'
        };
        F2.prototype = new F1();
        F3.prototype = new F2();
        var ff = new F3();
        console.log(ff.name2);
        //修改原型数据
        function F1(){
            //this.name1='1'
        };
        F1.prototype.name1 = 'f1';
        function F2(){
            this.name2='2'
        };
        function F3(){
            this.name3='3'
        };
        F2.prototype = new F1();
        F3.prototype = new F2();
        var ff = new F3();
        console.log(ff.__proto__.__proto__.__proto__.name1 = 'abc');
        console.log(F1.prototype);

        //删除原型数据
        function F1(){
            //this.name1='1'
        };
        F1.prototype.name1 = 'f1';
        function F2(){
            this.name2='2'
        };
        function F3(){
            this.name3='3'
        };
        F2.prototype = new F1();
        F3.prototype = new F2();
        var ff = new F3();
        delete ff.__proto__.__proto__.__proto__.name1;
        console.log(F1.prototype);

        //原型链    构造函数 /原型/实例 的关系
        //函数对象中有prototype   原型对象prototype里有constructor属性,指向原型对象所属的构造函数
        //对象都有__proto__属性  指向函数的原型对象
    }
    </script>
</head>
<body>

</body>
</html>

Original: https://www.cnblogs.com/Dewumu/p/14395357.html
Author: 德乌姆列特
Title: JavaScript原型链

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606634/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux at命令详解

    大家好,我是良许。 在生活中,我们有太多的场景需要使用闹钟,比如早上7点起床,下午4点开会,晚上8点购物,等等。 [En] In life, we have too many sc…

    Linux 2023年5月27日
    0137
  • Ubuntu 18.04 LTS的网络经常变成问号导致网速很慢的解决办法

    问题描述: Ubuntu系统Gnome桌面顶部栏的网络图标经常变成了一个问号。期间不能打开网页,在终端里面ping公网有时能通但丢包严重,或者根本就不通,错误提示 Temporar…

    Linux 2023年5月27日
    0150
  • Vim配置文件-详解(.vimrc)

    Vim配置文件的作用 Vim启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim 所有系统用户在启动Vim时,都会加载这个配置文件。…

    Linux 2023年6月13日
    0111
  • 华为学习笔记一初识VRP

    VRP简介 VRP是Versatile Routing Platform的简称,是华为公司从低端到高端的全系列路由器、交换机等数据通信产品的通用网络操作系统。华为网络设备功能的配置…

    Linux 2023年6月7日
    0152
  • 记录一次shell脚本环境全局变量在函数内部生效问题

    背景 计划核对内网IP的使用情况,所以写了个小脚本扫描有哪些IP还在使用。执行脚本过程中发现函数中一直获取不到变量的值,排查后将结论记录下来。 问题现象 全局变量已配置,但在函数中…

    Linux 2023年5月27日
    0103
  • 解决Ubuntu(20.04)开机、关机、重启慢,有光标闪烁问题

    1. 问题描述 在开关机或重启时,等待时间很长,大约1分30秒,光标闪烁。 [En] When switching on and off, or rebooting, the wa…

    Linux 2023年5月27日
    0107
  • MySQL Performance Schema详解

    MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况。 1 performance schema特…

    Linux 2023年6月13日
    0121
  • 你还有什么问题吗?

    在面试过程中,一般都会有一个固定环节,那就是在临近结束时,面试官会问求职者: 你还有什么问题吗? 其实,这是一个很好的了解公司,了解未来团队的机会,但很多求职者却不知道问什么,或者…

    Linux 2023年6月7日
    0147
  • Ubuntu2004使用dnsmasq+Clash+Iptables+Ipset

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月13日
    0106
  • LaTeX 数学公式语法

    参考来源: https://blog.csdn.net/anxiaoxi45/article/details/39449445 https://www.cnblogs.com/ya…

    Linux 2023年6月7日
    0118
  • __pycache__

    最近在使用python写一个串口模块的时候,偶然发现运行脚本之后,在工程文件夹下面出现了这样一个文件夹__pycache__,所以就特意到网上查了一下这个文件夹是怎么回事。 &am…

    Linux 2023年6月14日
    0137
  • Linux特殊权限之suid、sgid、sbit权限

    文件权限管理之特殊命令 一:特殊权限 昨天所学的Linux基本权限为为9个;分别是rwx rwx rwx。但有时会发现系统中会有一些特殊的权限位符号; 例如: Linux系统一共有…

    Linux 2023年5月27日
    0160
  • linux系统(centos)配置ssh免密登录

    linux系统(centos)配置ssh免密登录 背景 在日常使用时候,远程执行一些命令或脚本,交互式的输入密码有些不方便。故需配置免密登录。 用SSH命令行在A服务器上远程登录B…

    Linux 2023年6月8日
    0123
  • 运维开发之路:带你解剖html列表,一个看似简单而又不简单的知识点。

    HTML支持有序、无序和自定义列表,本篇笔者对这几个知识点进行剖析,跟紧步伐,我们一起出发吧! 无序列表 无序列表以ul标签开始,每个列表项都以li标签开始,无序列表是一个项目的列…

    Linux 2023年6月7日
    0126
  • DEX文件解析–7、类及其类数据解析(完结篇)

    一、前言 前置技能链接:DEX文件解析—1、dex文件头解析DEX文件解析—2、Dex文件checksum(校验和)解析DEX文件解析–3、de…

    Linux 2023年6月8日
    0113
  • 在Ubuntu20.04上安装Kubernetes-Kubeadm和Minikube

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 在本文中,我们将了解如何在 Ubuntu 20.04 上安装 Kubernetes。在过去的几年里,容器化为开发人员提供了很大的…

    Linux 2023年5月27日
    0133
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球