javascript中var s=new fun; 和var s=new fun();有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中var s=new fun; 和var s=new fun();有啥区别?相关的知识,希望对你有一定的参考价值。

没有什么区别。
使用 new 关键字创建实例的时候,如果没有参数,可以省略括号。
编码规范不是很推荐这么写。但是不会带来问题。
比如: new Date追问

Js中length属性是和方法有什么不同?
有返回值不是函数吗?函数不是length();这样执行吗?为何没有后面没有括号
我看有人博客里面length后面加油括号,str.length();但并不能执行
为什么这个属性能和有函数一样的功能?

追答

JS 没有什么原生对象有 length 方法。Array 有 length 属性。

追问

属性一般都是变量对吧

追答

不是。属性是属性。变量是变量。

参考技术A

fun是这个函数

fun()是运行了这个函数,取得了这个函数的返回值

var s=new fun; //以fun为原型创建对象
var s=new fun(); //以fun()的返回值为原型创建对象

分享几道经典的javascript面试题

这几道题目还是有一点意思的,大家可以研究一番,对自己的技能提升绝对有帮助。

1、调用过程中输出的内容是什么

function fun(n, o) {
    console.log(o);
    return {
        fun : function(m) {
            return fun(m, n);
        }
    }    
}

var a = fun(0);
a.fun(1);
a.fun(2);
a.fun(3);
var b = fun(0).fun(1).fun(2).fun(3);
var c = fun(0).fun(1);
c.fun(2);
c.fun(3);

2、console.log中的值是什么

var s = 3;
function test() {
    var s = 2;
    function f() {
        return s;
    }
    return f;
}
var test = test();
console.log(test);
var f =test();
console.log(f);

3、console.log中的值是什么

var arr = [];
function fun() {
    for(var i=0; i<4; i++) {
        var x = {};
        x.no = i;
        x.test = arr[i];
        x.fun = function() {
            console.log(i);
        }
        arr.push(x);
    }
}
fun();
console.log(arr[0].fun());
console.log(arr[1].fun());
console.log(arr[2].fun());
console.log(arr[3].fun());

 

以上是关于javascript中var s=new fun; 和var s=new fun();有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

分享几道经典的javascript面试题

这句话啥意思,javascript中 var num = new Number();

javascript中new是啥意思

Javascript“var obj = new Object”在C#中的等价物

JavaScript笔记基础篇

var s=+newDate();