在javascript中使用箭头函数回调

时间:2017-11-04 00:28:29

标签: javascript ecmascript-6 callback

我们说有两个功能。

<Grid>
    <GroupBox Header="Header">
        <GroupBox.Style>

                <Style TargetType="{x:Type GroupBox}">
                <Setter Property="Background" Value="white"/>
            </Style>
        </GroupBox.Style>
        <Label Content="dsfdsfdsf" Foreground="Black"  />
    </GroupBox>
</Grid>

当我通过假设条形码而不需要参数来呼叫function foo(callback) { ... } function bar() { ... } foo(bar)时有什么不同?

我最近前一个关于foo(() => bar())上下文发生了错误,而第二个工作正常。我知道箭头函数将this上下文绑定到函数中,我不知道它的区别是什么。

仅供参考,这是有问题的代码。

this

我刚发现问题可能与上下文无关。它可能是应用或绑定的东西。因为第2行和第3行工作正常,而只有第1行显示错误。

1 个答案:

答案 0 :(得分:2)

首先,您所描述的内容与箭头功能无关。

public class MainActivity extends AppCompatActivity implements OnCompleteListener<Void>{ 的值取决于函数如何调用。当函数是对象的属性并被称为this时,foo.bar()内的this将引用foo.bar

因此,在最后两个示例中,foo将引用this而不是socket

在您的第一个示例中,socket.connect将引用另一个值,因为该函数不会作为this的方法执行。但socket可能希望socket.connect提到this

简化示例:

socket