猿问

什么是“头等对象”?

什么是“头等对象”?

在.最近的问题,我收到了关于讨论JavaScript方面的建议,其中函数是“第一类”对象。与其他对象相比,“第一类”在这种情况下意味着什么?

编辑(J Rg W Mittag):完全重复:“什么是一流的编程结构?”


凤凰求蛊
浏览 392回答 3
3回答

守候你守候我

概念“一流功能”一种编程语言是由英国计算机科学家提出的。克里斯托弗·斯特兰奇在20世纪60年代。这个原则最著名的表述可能是计算机程序的结构与解释杰拉尔德·杰伊·苏斯曼和哈里·艾伯森:它们可以通过变量来命名。它们可以作为程序的论据。他们可以作为程序的结果返回。它们可能包含在数据结构中。基本上,这意味着在编程语言中,您可以使用所有其他元素来处理函数。因此,在JavaScript中,这意味着您可以使用Integer、String、Array或任何其他类型的对象做任何事情。也处理函数。

牛魔王的故事

更完整的批准Strache-Susman-Abelson的配方。因此,如果您的语言支持这样的构造,那么您就有了一个函数为头等舱语文:)var men = function (objectOfAdmiration) {   return objectOfAdmiration();};men.isSweetHeart = true;var women = function (objectOfAdmiration) {   return objectOfAdmiration();};women.isSweetHeart = true;var aliens = function (objectOfAdmiration) {   return objectOfAdmiration();};function like(obj){   if (obj.isSweetHeart) {       return function (){ return "Holy TRUE!"};    }   else {       return function (){ return "Holy CRAP!"};   }}alert("Men like women is " + men(like(women))); // -> "Holly TRUE!"alert("Women like men is " + women(like(men)));    // -> "Holly TRUE!"alert("Men like aliens is " + men(like(aliens)));     // -> "Holly CRAP!"alert("Aliens like women is " + aliens(like(women))); // -> "Holly TRUE!" :)//women(like(aliens));      //  Who knows? Life is sometimes so unpredictable... :)简而言之,如果任何东西在语言中充当状态操作类对象或对象类型,那么它都是一流的对象。简单地说,你可以操作和传递语句,同时在表达式中计算。或者更短:当您可以将函数看作可以额外调用的对象时。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答