代码之家  ›  专栏  ›  技术社区  ›  rkg

JavaScript函数是“函数”还是“对象”或两者都是?

  •  4
  • rkg  · 技术社区  · 14 年前

    4 回复  |  直到 14 年前
        1
  •  7
  •   meder omuraliev    14 年前

    javascript中的函数是一级对象。所以它们既是功能又是对象。

    因为它们是一类对象,所以可以将变量赋给函数并赋予其属性,例如:

    var addName=function(){}; 
    addName.blah = 1;
    

    function addName(){}
    
        2
  •  4
  •   VoteyDisciple    14 年前

    两者都是。

    一切 是Javascript中的“数据”,包括函数。我觉得这是一个很好的方式来描绘它:

    var f = function() { alert('foo'); };
    

    这是对一个变量的赋值,与你写的一样,比如:

    var f = new String('foo');
    

    不管怎样,你都可以写下 f.bar = 'baz'; 为对象指定属性。唯一的区别是 () 运算符(如果您愿意)仅在您拥有的变量碰巧是函数时才起作用。 f() 如果它是一个函数就有意义; f()

        3
  •  2
  •   Å ime Vidas Zim84    14 年前

    在JavaScript中,所有函数都是对象。

    函数是可以调用的对象。(它们有一个内部的[[调用]]属性)

        4
  •  0
  •   salezica    14 年前

    好吧,我不会说“JavaScript函数是一流的对象”,因为每个人都已经说过了,但是如果你想了解更多关于函数的内容,请看这一小页:

    http://jqfundamentals.com/book/ch02s09.html

    顺便说一下,如果你打算学习JavaScript和JQuery,那是一本免费的在线书。