[英]Is JavaScript function a “function” or an “object” or both?
我试图了解Javascript函数的行为方式。 它是一个功能还是一个对象或两者兼而有之?
javascript中的函数是第一类对象。 所以他们既是功能又是对象。
因为它们是第一类对象,所以可以为函数赋值并赋予它属性,例如:
var addName=function(){};
addName.blah = 1;
如果它们不是一流的对象,你只能使用这种语法,但你可以两种方式:
function addName(){}
这两者都是。
一切都是Javascript中的“数据”,包括函数。 我发现这是一个很好的方式来描绘它:
var f = function() { alert('foo'); };
这是对变量的赋值,与你写的没有什么不同,比如说:
var f = new String('foo');
无论哪种方式,你都可以编写像f.bar = 'baz';
这样的语句f.bar = 'baz';
为您的对象分配属性。 唯一的区别是()
运算符(如果你愿意)只有在你所拥有的变量恰好是一个函数时才有效。 如果它是一个函数, f()
是有意义的; 如果它是一个字符串或其他一些数据, f()
是没有意义的。
在JavaScript中,所有函数都是对象。
函数是可以调用的对象。 (他们有一个内部[[Call]]属性)
好吧,我不会说“JavaScript函数是一流的对象”,因为每个人都已经说过了,但是如果你想要更多函数,请看一下这个简短的页面:
http://jqfundamentals.com/book/ch02s09.html
顺便说一句,如果你打算学习JavaScript和JQuery,这是一本免费的在线书籍。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.