JavaScript功能是“功能”还是“对象”或两者兼而有之?

时间:2010-10-15 16:21:38

标签: javascript

我试图了解Javascript函数的行为方式。它是一个功能还是一个对象或两者兼而有之?

4 个答案:

答案 0 :(得分:7)

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

因为它们是第一类对象,所以可以为函数赋值并赋予它属性,例如:

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

如果它们不是一流的对象,你只能使用这种语法,但你可以两种方式:

function addName(){}

答案 1 :(得分:4)

两者都是。

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

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

这是对变量的赋值,与你写的没有什么不同,比如说:

var f = new String('foo');

无论哪种方式,您都可以编写f.bar = 'baz';之类的语句来为对象分配属性。唯一的区别是()运算符(如果你愿意)只有在你所拥有的变量恰好是函数时才有效。如果它是一个函数,f()是有意义的;如果它是一个字符串或其他一些数据,f()没有任何意义。

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

好吧,我不会说“JavaScript函数是头等对象”,因为每个人都已经说过了,但如果你想要更多函数,请看一下这个简短的页面:

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

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