首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新函数与新函数()

新函数与新函数()
EN

Stack Overflow用户
提问于 2014-05-23 09:15:02
回答 4查看 125关注 0票数 1

我在javascript中看到了下面的用法。

代码语言:javascript
复制
var t = new Function;//what does it mean?
var t1 = new Function();

我还读过MDN中的函数。没有发现像这样的用法。

我知道函数是js中内置的对象。所以我做了一些测试。发现不允许使用对象。为什么?

代码语言:javascript
复制
    var apple = {
                type: "macintosh",
                color: "red",
                getInfo: function () {
                    return this.color + ' ' + this.type + ' apple';
                }
            }
            var t3 = new apple;//Uncaught TypeError: object is not a function index.html:58
(anonymous function)

它对没有括号的new Function意味着什么?谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-23 09:19:19

new Functionnew Function()一样,这里的问题是独立的。

apple是一个文字对象,而不是函数,因此您不能实例化它,不管有没有括号。

票数 2
EN

Stack Overflow用户

发布于 2014-05-23 09:20:56

代码语言:javascript
复制
var a = new Function

这意味着您已经创建了一个空的匿名函数,如果不提供函数params的主体,那么新函数和新函数()都是相同的。

苹果也是一个对象,所以不能实例化它。

票数 2
EN

Stack Overflow用户

发布于 2014-05-23 09:28:58

函数是用于创建类型函数的对象的构造函数。你可以用任何一种方法来创造新的物体,

代码语言:javascript
复制
obj = new Function

代码语言:javascript
复制
obj = new Function()

同样的方式,如果你有任何你自己类型的构造函数,你也可以这样做。假设你有一些汽车的结构体。你可以用任何一种方法来制造新车,

代码语言:javascript
复制
myCar = new Car or myCar = new Car()

但是,在你的例子中,苹果是常数对象。你不能用它来创建新的对象。如果你想让你拥有苹果建构器,如下所示,

代码语言:javascript
复制
function Apple(type, color) {
 this.type = type;
 this.color = color;
}

然后你可以做你真正想做的事,

代码语言:javascript
复制
 var t3 = new Apple("macintosh", "red");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23825300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档