zoukankan      html  css  js  c++  java
  • 构造函数用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 对象类型 则会替代构造函数返回该对象

  • 相关阅读:
    并不对劲的bzoj3932: [CQOI2015]任务查询系统
    并不对劲的bzoj4868: [Shoi2017]期末考试
    并不对劲的bzoj1853:[SCOI2010]幸运数字
    并不对劲的bzoj4199: [Noi2015]品酒大会
    并不对劲的bzoj1500: [NOI2005]维修数列
    并不对劲的hdu4777
    并不对劲的线段树套平衡树
    44.Linked List Cycle II(环的入口节点)
    43.Word Break(看字符串是否由词典中的单词组成)
    42.Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/flxy-1028/p/6079734.html
Copyright © 2011-2022 走看看