zoukankan      html  css  js  c++  java
  • js中直接调用函数和new函数的区别

    如果函数返回值为常规意义上的值类型(Number、String、Boolean)时,new函数将会返回一个该函数的实例对象,而如果函数返回一个引用类型(Object、Array、Function),则new函数与直接调用函数产生的结果等同。
    举例说明:

    //返回值类型
    function test(){
        this.name="我是test";
        return "test";
    }
    var t1 = test();//直接调用函数
    var t2 = new test();//new函数
    
    alert(typeof t1);//string
    alert(t1.name);//undefined
    
    alert(typeof t2);//object
    alert(t2.name);//我是test

    可见直接调用返回的是“test”(即函数的返回值),而new test()产生的是一个对象,它为该函数的实例对象,并且具有name属性。

    //返回一个引用类型
    function test(){
        var obj = new Object();
        obj.name = "我是test";
        return obj;
    }
    
    var t1 = test();//直接调用
    alert(typeof t1);//true
    alert(t1.name);//我是test
    var t2 = new test();//使用new
    alert(typeof t2);//true
    alert(t2.name);//我是test

    如果函数返回一个引用类型(Object、Array、Function),则new函数与直接调用函数产生的结果等同。


    参考文章:
    js中new函数和直接调用的区别

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

  • 相关阅读:
    input输入密码变黑点密文
    清除浮动的几种方法
    const let,console.log('a',a)跟console.log('a'+a)的区别
    Egret Wiing3快捷键
    时间转换成2016/12/29 14:23:09格式
    http status code
    构造函数模式
    Log4net
    Autofac
    WebApi返回Json格式字符串
  • 原文地址:https://www.cnblogs.com/Corphish/p/7144181.html
Copyright © 2011-2022 走看看