我试图了解Javascript函数的行为方式。它是一个功能还是一个对象或两者兼而有之?
答案 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,这是一本免费的在线书籍。