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

  • 相关阅读:
    day23
    day22
    day21
    day20
    day19
    day18
    day17
    day16
    day15
    PowerDesigner中NAME和COMMENT的互相转换,需要执行语句
  • 原文地址:https://www.cnblogs.com/wangxuehao/p/6559568.html
Copyright © 2011-2022 走看看