ruby如何解析lambda或block中的'self'关键字?
就像JavaScript一样,在ruby中,lambda可以通过函数传递 在JavaScriptruby如何解析lambda或block中的'self'关键字?,ruby,self,Ruby,Self,就像JavaScript一样,在ruby中,lambda可以通过函数传递 在JavaScript中,此将解析为调用方对象 但是ruby呢?同样的机制是否也适用于ruby的lambda或block?怎么用?你能给我一些示例代码吗 顺便说一句,我已经读过了,但是我没有从中找到任何有用的信息。在Ruby中,self是词汇范围,即self在一个块或lambda中,无论它在同一个地方是什么,而不在块或lambda中 类(1)在JavaScript中不是那么简单,考虑函数。原型。绑定< /代码>或函数。原型
中,此
将解析为调用方对象
但是ruby呢?同样的机制是否也适用于ruby的lambda或block?怎么用?你能给我一些示例代码吗
顺便说一句,我已经读过了,但是我没有从中找到任何有用的信息。在Ruby中,
self
是词汇范围,即self
在一个块或lambda中,无论它在同一个地方是什么,而不在块或lambda中
<代码>类(1)在JavaScript中不是那么简单,考虑<代码>函数。原型。绑定< /代码>或<代码>函数。原型。调用<代码>或箭头函数。(2)
f=->{};f、 binding.receiver
可能值得一看,然后。简而言之,我喜欢您的对象ID:-)self
在lambda内部,没有特殊技巧的进程和块的行为与JavaScript arrow函数中的this
相同。@3limin4t0r:是的,arrow函数中对this
范围的更改(而不是简单地使arrow函数对函数表达式进行语法糖化)之所以引入闭包,是因为这种行为是“理智的”行为,这不仅是Ruby的行为,也是大多数带有闭包的语言的行为。