zoukankan      html  css  js  c++  java
  • constructor

    • 是一个属性
    • 是默认的prototype对象的属性
    • 值为构造函数

    构造函数的实例对象,有一个隐藏的[[prototype]]属性,此属性从何而来?

    在对象被创建出来的过程中,构造函数prototype常规属性指向一个对象,那个对象同样是实例对象[[prototype]]属性的值。

    实例对象可以使用constructor属性。

    1 function Rabbit() {}
    2 // by default:
    3 // Rabbit.prototype = { constructor: Rabbit }
    4 
    5 let rabbit = new Rabbit(); // inherits from {constructor: Rabbit}
    6 
    7 alert(rabbit.constructor == Rabbit); // true (from prototype)

    考虑下构造函数,构造函数现在多了一个代言人constructor属性,它指向构造函数,本质上,使用constructor就是在使用构造函数。

    1 function Rabbit(name) {
    2   this.name = name;
    3   alert(name);
    4 }
    5 
    6 let rabbit = new Rabbit("White Rabbit");
    7 
    8 let rabbit2 = new rabbit.constructor("Black Rabbit");

    是啊,new Rabbit() 和new rabbit.constructor()效果一样。

    中文名叫构造器属性,也差不多吧。

    构造器属性说白了还是某一个对象中的属性,它一定存在吗?

    肯定不行,如果我们改变它所在的那个对象,它可能就被干掉了。

    改变这个对象有哪些方式?就像我们买鞋一样,是重新买一双还是修补?

    假如这双鞋里有非常牛的功能,那就是它能自动确认方向,就像个指南针一样。

    最好是修补吧,没必要买一双就别买。

    假如非要换一双,而且还要这个非常牛的功能,就重新把这个功能安装上去。

  • 相关阅读:
    sqlite3 增删改查
    Charles 修改接口返回值
    矫正Django 时间不正确
    unittest 使用 HTMLTestRunner 生成测试报告
    unittest 使用例子
    pyppeteer
    linux源码编译-安装timescaledb数据库(中标麒麟+龙芯CPU) (转载)
    不会用java api对kafka topic进行创建、查询和删除,你也太out了(建议收藏)(转载)
    django 学习(转载)
    Docker 启动镜像(转载)
  • 原文地址:https://www.cnblogs.com/flyover/p/14159217.html
Copyright © 2011-2022 走看看