• 构造函数用return 会出显什么情况


    首先我们都知道js中构造函数一般应该是这样的

    1. function Super (a) {  
    2.    this.a = a;  
    3. }  
    4. Super.prototype.sayHello = function() {  
    5.    alert('hello world');  
    6. }  

    但如果在构造函数中 加入 return 会是什么结果呢

    1. function Super (a) {  
    2.    this.a = a;  
    3.   
    4.    return {a: 2};  
    5. }  
    6. Super.prototype.sayHello = function() {  
    7.    alert('hello world');  
    8. }  



    new 这个构造函数会返回什么? 

    Object {a: 2}

    为什么会这样?我们的构造函数和原型上的方法呢?别急 我们再来 列出集中情况

    1. //直接 return  
    2. function A(){  
    3.    return;  
    4. }  
    5. //返回 数字类型  
    6. function B(){  
    7.    return 123;  
    8. }  
    9. //返回 string类型  
    10. function C(){  
    11.    return "abcdef";  
    12. }  
    13. //返回 数组  
    14. function D(){  
    15.    return ["aaa", "bbb"];  
    16. }  
    17. //返回 对象  
    18. function E(){  
    19.    return {a: 2};  
    20. }  
    21. //返回 包装类型  
    22. function F(){  
    23.    return new Number(123);  
    24. }  


    结果分别是

    1. A {}  
    2. B {}  
    3. C {}  
    4. ["aaa", "bbb"]  
    5. Object {a: 2}  
    6. Number {[[PrimitiveValue]]: 123}  
    7. A {}  

    我们可以看出 return 基本类型 会返回一个空对象 

    而返回对象类型 则会返回这对象

    与我们常用的那个构造函数相结合

    1. function Super (a) {  
    2.    this.a = a;  
    3.    return 123;  
    4. }  
    5. Super.prototype.sayHello = function() {  
    6.    alert('hello world');  
    7. }  
    8. function Super_ (a) {  
    9.    this.a = a;  
    10.    return {a: 2};  
    11. }  
    12. Super_.prototype.sayHello = function() {  
    13.    alert('hello world');  
    14. }  

    分别new Super(1); new Super_(1);

    结果是

    Super {a: 1} 具有原型方法sayHello

    Object {a: 2}

    好了现在我们总结下 在构造函数中 return 基本类型 不会影响

    构造函数的值而 return 对象类型 则会替代构造函数返回该对象

  • 相关阅读:
    c# 构架WPF 纸牌游戏(斗地主2)
    超级灰色按钮克星更新v1.3.1112.40
    早期绑定、动态绑定、后期绑定
    反射、反射加壳、反射脱壳、反射注册机(上)
    c# 构架WPF 纸牌游戏(斗地主4)
    Google首页吃豆游戏完整源码下载,以及声音问题的解决
    c# 构架WPF 纸牌游戏(斗地主1)
    c# 构架WPF 纸牌游戏(斗地主3)
    反射、反射加壳、反射脱壳、反射注册机(下)
    未能加载文件或程序集一例
  • 原文地址:https://www.cnblogs.com/flxy-1028/p/6079734.html
Copyright © 2020-2023  润新知