zoukankan      html  css  js  c++  java
  • JS的OOP--new一个function背后的实际操作

    var fun = new Fun();

    其实相当于以下三步:

    1. var fun = {};

    2. fun.__proto__ = Fun.prototype;

    3. Fun.call(fun);

    特别说明一种情况,默认构造函数是没有写明return的,实际上会返回一个this值所引用的对象。

    1.构造函数在没有指定返回值的情况下,默认会返回新对象实例

    2.如果指定的返回值是基本数据类型的话,仍然会返回新对象实例

    3.如果指定返回对象了的话,被返回的对象就成了指定的对象值。在这种情况下,this值所引用的对象就被丢弃了。

    var fun = function(){
      this.name = 'peter';
      return {
        name: 'jack'
      };
    }
    var p = new fun();
    console.log(p.name);   //打印出jack

  • 相关阅读:
    [HAOI2016]食物链
    [TJOI2011]序列
    P2548 [AHOI2004]智能探险车
    [JSOI2008]最大数
    模板之dinic
    Excim的NOIP2017游记
    数列排序
    Car的旅行路线
    [HAOI2006]均分数据
    [luogu2210] Haywire
  • 原文地址:https://www.cnblogs.com/wangxuehao/p/6559568.html
Copyright © 2011-2022 走看看