手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >详解new function(){}和function(){}() 区别分析
详解new function(){}和function(){}() 区别分析
摘要:情景一:varyx01=newfunction(){return"圆心"};alert(yx01);我们运行情景一代码,将返回显示“[obj...

情景一:

varyx01=newfunction(){return"圆心"};

alert(yx01);

我们运行情景一代码,将返回显示“[objectobject]”,此时该代码等价于:

function匿名类(){

return"圆心";

}

varyx01=new匿名类();

alert(yx01);我们对情景一的代码进行下面改造:

varyx01=newfunction(){returnnewString("圆心")};

alert(yx01);

我们运行,将会发现返回的是“圆心”,这是为什么呢?

只要new表达式之后的constructor返回(return)一个引用对象(数组,对象,函数等),都将覆盖new创建的匿名对象,如果返回(return)一个原始类型(无return时其实为return原始类型undefined),那么就返回new创建的匿名对象

由于newString会构造一个对象,而不是一个string直接量,且newString(x)如果带参数,那么alert它的时候就会返回x。所以yx01将返回newString(”圆心”)这个对象,而alertyx01则显示“圆心”。

情景二:

varyx02=function(){return"圆心"}();

alert(yx02);我们运行情景二代码,将返回显示“圆心”,此时该代码等价于:

var匿名函数=function(){return"圆心"};

yx02=匿名函数();

alert(yx02);很明显,yx02返回的是匿名函数的执行结果值,即yx02为:“圆心”。

当然匿名函数的执行结果也可以为一个匿名对象。具体常见应用可以看《Javascript的一种模块模式》

【详解new function(){}和function(){}() 区别分析】相关文章:

删除javascript所创建子节点的方法

javascript获取select值的方法分析

详解 JavaScript 闭包的小知识

JQuery使用index方法获取Jquery对象数组下标的方法

JavaScript中Math.SQRT2属性的使用详解

JavaScript实现广告的关闭与显示效果实例

js实现精美的银灰色竖排折叠菜单

经验几则 推荐

javaScript中slice函数用法实例分析

链接渐变效果

精品推荐
分类导航