为了账号安全,请及时绑定邮箱和手机立即绑定

什么是“头等对象”?

什么是“头等对象”?

凤凰求蛊 2019-07-06 15:38:52
什么是“头等对象”?在.最近的问题,我收到了关于讨论JavaScript方面的建议,其中函数是“第一类”对象。与其他对象相比,“第一类”在这种情况下意味着什么?编辑(J Rg W Mittag):完全重复:“什么是一流的编程结构?”
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

概念“一流功能”一种编程语言是由英国计算机科学家提出的。克里斯托弗·斯特兰奇在20世纪60年代。这个原则最著名的表述可能是计算机程序的结构与解释杰拉尔德·杰伊·苏斯曼和哈里·艾伯森:

  • 它们可以通过变量来命名。
  • 它们可以作为程序的论据。
  • 他们可以作为程序的结果返回。
  • 它们可能包含在数据结构中。

基本上,这意味着在编程语言中,您可以使用所有其他元素来处理函数。因此,在JavaScript中,这意味着您可以使用Integer、String、Array或任何其他类型的对象做任何事情。处理函数。


查看完整回答
反对 回复 2019-07-06
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

更完整的批准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... :)

简而言之,如果任何东西在语言中充当状态操作类对象或对象类型,那么它都是一流的对象。简单地说,你可以操作和传递语句,同时在表达式中计算。或者更短:当您可以将函数看作可以额外调用的对象时。


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 391 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信