js对象(2)「建议收藏」

js对象(2)「建议收藏」1.JavaScript原型如果所有对象都有私有字段[[prototype]],就是对象的原型;读一个属性,如果对象本身没有,则会继续访问对象的原型,直到原型为空或者找到为止。操作原型的三种方法:Object.create根据指定的原型创建新对象,原型可以是null;Object.getPrototypeOf获得一个对象的原型;Object.setPrototypeOf设置一个对象的原型。varcat={say(){

大家好,又见面了,我是你们的朋友全栈君。

1 . JavaScript原型
如果所有对象都有私有字段[[prototype]],就是对象的原型;
读一个属性,如果对象本身没有,则会继续访问对象的原型,直到原型为空或者找到为止。

操作原型的三种方法:
    Object.create 根据指定的原型创建新对象,原型可以是 null;
    Object.getPrototypeOf 获得一个对象的原型;
    Object.setPrototypeOf 设置一个对象的原型。

    var cat = {
        say(){
            console.log("meow~");
        },
        jump(){
            console.log("jump");
        }
    }
    var tiger = Object.create(cat,  {
        say:{
            writable:true,
            configurable:true,
            enumerable:true,
            value:function(){
                console.log("roar!");
            }
        }
    })
    var anotherCat = Object.create(cat);
    anotherCat.say();
    var anotherTiger = Object.create(tiger);
    anotherTiger.say();

new运算接收一个构造器和一组调用参数:
    以构造器的 prototype 属性(注意与私有字段[[prototype]]的区分)为原型,创建新对象;
    将 this 和调用参数传给构造器,执行;
    如果构造器返回的是对象,则返回,否则返回第一步创建的对象。

    用构造器模拟类的两种方法( 旧版本 ):

        function c1(){
            this.p1 = 1;
            this.p2 = function(){
                console.log(this.p1);
            }
        }
        var o1 = new c1;
        o1.p2();



        function c2(){
        }
        c2.prototype.p1 = 1;
        c2.prototype.p2 = function(){
            console.log(this.p1);
        }

        var o2 = new c2;
        o2.p2();


    第一种方法是直接在构造器中修改 this,给 this 添加属性。
    第二种方法是修改构造器的 prototype 属性指向的对象,它是从这个构造器构造出来的所有对象的原型。
  1. ES6中的类
    基本写法:

     class Rectangle {
       constructor(height, width) {
         this.height = height;
         this.width = width;
       }
       // Getter
       get area() {
         return this.calcArea();
       }
       // Method
       calcArea() {
         return this.height * this.width;
       }
     }
    

    类的继承:

     class Animal {
       constructor(name) {
         this.name = name;
       }
    
       speak() {
         console.log(this.name + ' makes a noise.');
       }
     }
    
     class Dog extends Animal {
       constructor(name) {
         super(name); // call the super class constructor and pass in the name parameter
       }
    
       speak() {
         console.log(this.name + ' barks.');
       }
     }
    
     let d = new Dog('Mitzie');
     d.speak(); // Mitzie barks.
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163391.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 记录一次docker启动容器后Exited(127)的解决过程[通俗易懂]

    特意强调一下:本人使用的系统为centos6.8本人运行容器的状态为Exited(127),如果你的问题不是127,可能解决不了你的问题问题:安装docker之后,拉取镜像dockerpullredis然后dockerimages查看所有镜像后,开始命令运行redisdockerrun-d–name=myredis-p6379:6379-d7caaqwe22q(镜像id)然后dockerps-a发现:CONTAINERIDIMAGE

    2022年4月15日
    837
  • FPGA实现spi协议通信_fpga pll

    FPGA实现spi协议通信_fpga pllSPI协议是由摩托罗拉公司提出的通讯协议(SerialPeripheralInterface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD等设备与MCU间,要求通讯速率较高的场合。SPI通讯设备之间的常用连接方式见图1。SPI通讯使用3条总线及片选线,3条总线分别为SCK、MOSI、MISO,片选线为SS,它们的作用介绍如下:(1)SS(SlaveSelect):从设备选择信号线,常称为片选信号线,也称为NSS、CS,以下用N

    2022年9月25日
    3
  • 分享一个免费的图片去水印网站[通俗易懂]

    分享一个免费的图片去水印网站[通俗易懂]一、软件截图二、操作说明1、先上传图片2、点击选择区域,在图片上选择要去水印的区域,可支持同时选择多个区域。3、点击开始去水印4、保存去水印的图片到本地。5、如果不满意可再次选择。三、免费体验地址http://121.196.27.184:8080/…

    2025年7月14日
    4
  • 可控硅工作原理及参数详解图_晶闸管和可控硅有什么区别

    可控硅工作原理及参数详解图_晶闸管和可控硅有什么区别原创:JackieLong转自:https://www.cnblogs.com/sunshine-jackie/p/8137469.html可控硅全称“可控硅整流元件”(SiliconControlledRectifier),简写为SCR,别名晶体闸流管(Thyristor),是一种具有三个PN结、四层结构的大功率半导体器件。可控硅体积小、结构简单、功能强,可起到变频、整流、逆变、…

    2025年8月19日
    4
  • CMPP讲解_cmpp2.0

    CMPP讲解_cmpp2.0  1 、缩略语解释  ISMG                         InternetShortMessageGateway     互联网短信网关

    2025年8月1日
    6
  • S3C2440 LED驱动总结

    S3C2440 LED驱动总结1.电路图2.使用说明此驱动实现二种操作模式: 普通操作模式:./LedTest<led1/led2/led3><on/off> 点亮或熄灭某个LED灯 掩码操作模式:./LedTestled_mask led_mask只能是:000、001、010、011….111 可以同时设置三个LED,对应1位置的LED被点亮,对应0位置熄灭…

    2022年5月12日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号