zoukankan      html  css  js  c++  java
  • JS中用new 创建对象及在构造函数中return的使用

    创建具备特定类型的对象可以通过使用new关键字用构造函数模式来完成

    function Emp(){
        this.name="Ray";
    }
    var p = new Emp();
    在这个过程中,相当于以Emp()为“模版”创建了一个新对象p,它具备Emp构造器中的成员变量和构造器原型。并且Emp将this设置为p
    过程模拟:
    var p = {};
    Emp.apply(p);
    p.__proto__=Emp.prototype;
    
    用new声明的对象才能有Emp的属性。(通过this定义的)
    例如 var q = Emp();
    q === "undefined"
    这是因为函数默认返回值是undefined,所以如果函数中没有return的话,则返回undefined.

    在调用构造函数的过程中会经历以下4个步骤:

    ①创建一个新对象
    ②将构造函数的作用域赋给新对象(因此this指向这个新对象)
    ③执行构造函数中的代码(为这个新对象添加属性)
    ④返回新对象
    

    接下来说说构造函数里包含return的情况

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

    //如果指定的返回值是基本数据类型的话,仍然会返回新对象实例。
    function
    A(){ this.x=3; return "OK"; } var a = new A(); a instanceof A === true; "x" in a === true

    如果指定返回对象了的话,被返回的对象就成了指定的对象值。在这种情况下,this值所引用的对象就被丢弃了。
    function B(){ this.x=3; return Object("OK"); } var b = new B();
    "x" in b === false b
    instanceof B === false b instanceof String === true
  • 相关阅读:
    删除数据时弹出一个确认对话框
    制作一个页面弹出窗口
    网页授权——扫二维码获取openid
    删除自定义菜单
    创建自定义菜单
    微信公众平台开发接口PHP SDK
    上传文件
    Fibonacci
    最大公约数和最小公倍数
    完数【转载】
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/2679147.html
Copyright © 2011-2022 走看看