如何在javascript中创建一流的对象

时间:2014-03-27 04:51:47

标签: javascript function object first-class

在阅读了第一个类对象之后,我决定将我的新的第一类对象变成一个函数,但是有了另一个名字。我在javascript中搜索并发现了很多关于函数的东西。


我的研究结论

1)每个函数都是一个对象,也可以像对象一样对待。

在这里查看代码:

var myfunc3 = new Function(
                 "a", " return a + 1;");

来自第this

据我所知,以前定义的任何函数都可以使用new构造函数调用:

    var person = function(name, age){
       this.name=name;
       this.age = age;
}

现在我可以使用new来调用它:

var x = new person("tom", 34); 

所以从上面的例子中我可以说先前定义的函数然后再用new调用!


我不知道

1)函数如何使用圆括号,

2)无法理解行Function( "a", " return a + 1;");

3)我们如何实现功能?


我知道你肯定会不喜欢这个问题,但我想这样做,因为我想了解JavaScript的每一个细节。

谢谢!

2 个答案:

答案 0 :(得分:1)

1)这是调用函数的语法,用语言定义。

f(a); // calls the function "f" with the argument "a"

2)函数是第一类对象,这意味着它们可以像任何其他对象一样传递,并且像其他具有构造函数的对象Function一样。 Function构造函数通过评估新隔离范围中的代码来创建新函数,因此您无法访问周围的变量。同样,Functioneval的一种形式,避免它,这不是在JavaScript中创建函数的方法。

3)你没有实现一个功能。函数是已经实现的对象。在JavaScript中有两种创建函数的方法。功能声明:

function f(){}

一个函数表达式:

var f = function(){};

区别在于提升。见var functionName = function() {} vs function functionName() {}

答案 1 :(得分:0)

要回答你的问题,

  1. Round Brackets是Syntax,它包含参数。

  2. 它可能是一个名为Function的函数,它接受两个参数。

  3. 您可以通过使用参数并在函数内部执行某些逻辑来实现函数,也可以使用return关键字返回一些内容。

  4. 例如:

    没有return的功能:

    function Hi(name){
      alert("Hi "+name);
    } // Calling it like this: Hi("John"); will alert "Hi John"
    

    返回的功能:

    function Hi(name){
      return "Hi "+name;
    }// You can store what's returned in a variable like this: var text=Hi("John");alert(text);