首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

函数类型的疑惑,该如何解决

2012-09-14 
函数类型的疑惑var f1 new function(){return function1 }var f2 function(){return function2

函数类型的疑惑
var f1 = new function()
  {
  return "function1" ;
  }
var f2 = function()
{
  return "function2" ;

}
alert(typeof f1);//提示 object
alert(typeof f2);//提示 function

为啥提示不一样呢?求高人讲解

[解决办法]
new本来的作用就是创建一个新对象。
[解决办法]
第一个是定义一个函数然后对其实例化 将实例化后的对象赋值给f1
第二个其实就是定义了一个函数然后赋值给f2
看看下面的例子

JScript code
        var f1 = new function() {            alert(this);//定义f1时就已执行 此时this指向该对象        };        var f2 = function(){          alert(this);//执行f2();时才执行 this仍指向window        };        f2();
[解决办法]
还有一点
在用构造函数实例化的时候(即new 一个对象),构造函数中的return如果返回的不是object类型,会被替换成object(这里是这个新实例化的object,即构造函数里的this)

热点排行