繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM