Eloquent Javascript 中的 Javascript 函数

     2023-02-22     157

关键词:

【中文标题】Eloquent Javascript 中的 Javascript 函数【英文标题】:Javascript function in Eloquent Javascript 【发布时间】:2014-01-20 15:49:43 【问题描述】:

greaterThanTen(9)如何成为返回函数中的y变量?我的意思是参数(9)如何成为返回函数参数中的y?自从greaterThanTen = greaterThan(10) 之后,9 不会被替换为x 吗? 9 不会替换 x = 10 参数吗?我只是不明白9 参数是如何在返回函数中到达y 的。

 function greaterThan(x) 
   return function(y) 
     return y > x;
   ;
 

 var greaterThanTen = greaterThan(10);
 show(greaterThanTen(9));

【问题讨论】:

看看这个答案***.com/a/20446108/2415293 这是一个很好的例子,我现在对闭包有了更深入的了解。 【参考方案1】:

它不会“成为y 变量”。函数greaterThan 返回一个函数,传递给greaterThan 的值在返回的函数中被“捕获”。

换句话说,greaterThan(10) 创建了以下函数:

function(y)  return y > 10; 

类似写法:

function greaterThan10(y)  return y > 10; 

创建函数的函数利用闭包(“'捕获' 10 的东西)。

优点是您不需要为每个要使用的号码编写greaterThanNnn 函数,您只需调用greaterThan(n) 来满足您的需要。当然,这是一个人为但流行的例子。

有关引用函数的大量信息,何时使用(),何时不使用,以及一些更实际的示例,另请参阅:

Difference between calling function and referencing function? When do I use parenthesis and when do I not? Why function statement requires a name?

【讨论】:

好的,你的回答现在真的帮助我理解了这一点。我认为我的问题是我不明白该返回函数中发生了什么。 @Vodka_Tonic 它正在返回 ;) 在 JS 中,函数本身可以是值,例如 42"ohai"。这很好。【参考方案2】:

当您调用 greaterThan(10) 时,它会分配 x 的值并返回现在变成的 greaterThanTen 变量中的函数

var greaterThanTen = function(x)10>x;

然后在下一行中调用了greaterThanTen(9),因此它将分配x 值。我希望你明白我所说的。

【讨论】:

【参考方案3】:

您必须了解 JavaScript 中闭包概念的基础。闭包是 JavaScript 语言中最棘手和最特殊的补充。正如您会注意到的,它们遵循语言流的词汇范围。在此示例中;

 function greaterThan(x) 
   return function(y) 
     return y > x;
   ;
 

 var greaterThanTen = greaterThan(10);
 console.log(greaterThanTen(9));

如果您看到了闭包的主要概念。一旦你调用函数greaterThan,它就会创建另一个函数。但是当您传递第一个参数 10 时,它取代了 x。进一步,当您调用函数并传递第二个参数时 9 它发生在y 内置的函数上。通过这种方式,这些值存储在函数调用堆栈中,您可以对这些值进行比较和操作。

【讨论】:

在 JavaScript 中检索 Eloquent 模型函数

】在JavaScript中检索Eloquent模型函数【英文标题】:RetrieveEloquentModelfunctioninJavaScript【发布时间】:2017-07-0713:37:22【问题描述】:在Laravel中,我有一个EloquentModelPerson和一个函数getSomestringFromPerson(),它在ModelPerson上运行并返回一个... 查看详情

Laravel Eloquent 更新,如果已经进行了更改

...故地请求数据库,只需点击按钮即可保存更改。我有一个javascript功能,可以根据页面 查看详情

eloquent 中的参数号无效

】eloquent中的参数号无效【英文标题】:Invalidparameternumberineloquent【发布时间】:2019-08-1000:29:05【问题描述】:我有这个查询:useIlluminate\\Database\\Capsule\\ManagerasDB;$arr=[/*Arrayvalueshere*/];$in=str_repeat(\'?,\',count($arr)-1).\'?\';$str="SELE 查看详情

更改 Eloquent 中的默认主键

】更改Eloquent中的默认主键【英文标题】:ChangedefaultprimarykeyinEloquent【发布时间】:2013-11-3014:17:39【问题描述】:我可以更改Eloquent模型的主键吗?我想设置主键,例如admin_id而不是\'id\'?我知道我可以更改模型的表名,例如protec... 查看详情

如何访问 Rails escape_javascript 行中的 JavaScript 变量?

】如何访问Railsescape_javascript行中的JavaScript变量?【英文标题】:HowdoyouaccessaJavaScriptvariableinsideaRailsescape_javascriptline?【发布时间】:2011-06-2720:42:44【问题描述】:假设我在一个JavaScript函数中,我想像这样访问Rails行中的数据:var... 查看详情

laravel eloquent 中的一对多关系

】laraveleloquent中的一对多关系【英文标题】:One-To-ManyRelationshipsinlaraveleloquent【发布时间】:2017-04-2000:04:45【问题描述】:早上好,我在Eloquent中的模型关系遇到了一点问题,我需要用中间表链接这些文章的文章和图片。在中间... 查看详情

从 Eloquent 查询更改对象数组中的键

】从Eloquent查询更改对象数组中的键【英文标题】:ChangekeyinarrayofobjectsfromEloquentquery【发布时间】:2019-01-0719:05:23【问题描述】:我有一个来自Eloquent查询的对象数组:["id":1,"user_id":1,"name":null,"link":"storage/images/foo.png","id":2,"user_id"... 查看详情

使用 eloquent 截断 laravel 中的所有表

】使用eloquent截断laravel中的所有表【英文标题】:truncatealltablesinlaravelusingeloquent【发布时间】:2013-09-2509:17:19【问题描述】:有没有一种方法可以在laravel4中使用eloquent或fluent截断数据库中的所有表?我不想指定表名,我只想截... 查看详情

Laravel Eloquent Where , orWhere 和 Find 在同一个 eloquent 查询中的问题

】LaravelEloquentWhere,orWhere和Find在同一个eloquent查询中的问题【英文标题】:ProblemwithLaravelEloquentWhere,orWhereandFindinasameeloquentquery【发布时间】:2021-11-0616:03:52【问题描述】:如何使用LaravelEloquent编写此查询"SELECT*FROMlinksWHERE(user_... 查看详情

Eloquent 中的空白对象 belongsTo()

】Eloquent中的空白对象belongsTo()【英文标题】:BlankobjectinEloquentbelongsTo()【发布时间】:2022-01-0700:01:46【问题描述】:我正在尝试显示项目的哪一个属性(code)。ServiceItem将Item作为外键。但是我根本拿不到这个物品。这在刀片模板中... 查看详情

用 Rhino 解释 Java 中的 JavaScript:暂停/恢复脚本

】用Rhino解释Java中的JavaScript:暂停/恢复脚本【英文标题】:InterpretingJavaScriptinJavawithRhino:pausing/resumingscripts【发布时间】:2012-01-2620:10:19【问题描述】:我正在使用JDK的javax.script.*包。具体来说,我使用的是JavaScript引擎,根据我... 查看详情

如何从 Laravel 8 Eloquent 中的嵌套关​​系中获取数据?

】如何从Laravel8Eloquent中的嵌套关​​系中获取数据?【英文标题】:HowtogetdatafromnestedrelationshipinLaravel8Eloquent?【发布时间】:2021-12-3011:57:55【问题描述】:如何与eloquent建立深厚的关系?我正在尝试像这样显示数据:+---------------... 查看详情

Laravel ELOQUENT 问题中的 DISTINCT

】LaravelELOQUENT问题中的DISTINCT【英文标题】:DISTINCTinlaravelELOQUENTissue【发布时间】:2020-09-1201:11:13【问题描述】:在我的laravel应用程序中,我有两个名为apps和app_payments的表。我想加入这两个表,并按照以下laravelELOQUENT中的说明... 查看详情

通过 eloquent 更新 laravel 中的多行

】通过eloquent更新laravel中的多行【英文标题】:updatemultirowsinlaravelbyeloquent【发布时间】:2021-12-0303:48:13【问题描述】:假设我们有一个数据库,其中有一张名为fathers的表;以及另一个名为children的表。我想要所有父亲是妈妈的... 查看详情

如何从 JavaScript 中的 Razor 模型对象获取 JSON 对象

】如何从JavaScript中的Razor模型对象获取JSON对象【英文标题】:HowtogetJSONobjectfromRazorModelobjectinjavascript【发布时间】:2014-12-0806:14:22【问题描述】:在viewmodel对象中,属性如下:publicIList<CollegeInformationDTO>CollegeInformationlistget;set... 查看详情

laravel eloquent 中的本地键是啥

】laraveleloquent中的本地键是啥【英文标题】:whatislocalkeyinlaraveleloquentlaraveleloquent中的本地键是什么【发布时间】:2015-01-0408:56:44【问题描述】:http://laravel.com/docs/4.2/eloquent#relationships本地键在这个东西中是什么意思?这是否意味... 查看详情

Eloquent 可以替换数据库中的外键吗?

】Eloquent可以替换数据库中的外键吗?【英文标题】:CanEloquentreplaceforeignkeysinthedatabase?【发布时间】:2020-12-2110:58:00【问题描述】:当Eloquent通过hasMany()、belongsTo()等提供的模型关系很好地处理关系时,是否真的需要通过迁移向... 查看详情

Laravel 4 中的 Eloquent 调用:处理多个表中的单个列

】Laravel4中的Eloquent调用:处理多个表中的单个列【英文标题】:EloquentcallsinLaravel4:Dealingwithsinglecolumnsovermultipletables【发布时间】:2013-08-2010:45:45【问题描述】:我又回来了另一个Laravel问题,我似乎无法用我的程序PHP,直接mysql_q... 查看详情