为什么不能取消此箭头功能?

时间:2019-10-27 13:13:47

标签: javascript typescript arrow-functions

我确信以下2条陈述可以归结为同一件事。 但是在将第一个语句重构为第二个语句之后,我中断了应用程序。

 class Car {
 ... 
     Car(const Taxi& t);  // not necessary but for experimental purpose
 }; 
*this = *static_cast<Car*>(&taxi);

这两个为什么不一样?

这些箭头功能中没有const myReader = new DataReader(line => this.onStdOutLine(line)); process.stdout.on('data', (data) => myReader.processData(data)); ,因此似乎没有害处。至于DataReader类本身:

const myReader = new DataReader(line => this.onStdOutLine(line));
process.stdout.on('data', myReader.processData);

1 个答案:

答案 0 :(得分:2)

  

关于DataReader类本身……

确实使用my_to_f,例如def my_to_i(num) num.to_i end def my_to_f(num) num.to_f end def to_formatted_date(date_str) DateTime.strptime(date_str, "%d-%m-%y") end

因此,需要调用res = questions.map do |question| answer = nil 3.times do puts question[:text] u_input = gets.chomp if send question[:validate], u_input answer = send question[:convert], u_input break end end if answer.nil? puts "C'mon man! Check your keyboard!" # after three input errors!! break end { question: question[:text], answer: answer } end 的代码需要确保#=> [ {:question=>"Enter an integer:", :answer=>1}, {:question=>"Enter a float:", :answer=>1.1}, {:question=>"Enter a data as d-m-Y", :answer=>#<DateTime: 2020-10-27T00:00:00+00:00 ((2459150j,0s,0n),+0s,2299161j)>} ] 是它的this值。

箭头功能通过将其称为this._buffer += data;来实现。

如果将processData函数作为myReader的参数传递,则事件处理代码不会this的上下文中调用它。甚至不知道myReader.processData(data)存在。

如果要删除箭头功能,则必须做其他事情来维护processData的上下文。

您可以使用函数表达式或on

myReader