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

  • 相关阅读:
    jquery mobile
    可能用到的负边距应用
    兼容性问题
    less和scss
    函数的继承
    关于canvas
    html5表单属性
    html代码
    git 拉取远程分支 --本地分支不存在
    git 删除分支
  • 原文地址:https://www.cnblogs.com/wangxuehao/p/6559568.html
Copyright © 2011-2022 走看看