javascript – Angular2订阅了解箭头功能

前端之家收集整理的这篇文章主要介绍了javascript – Angular2订阅了解箭头功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试通过Angular 2 Observable subscribe方法的例子来理解typescript的箭头函数.有人可以解释我:

我有这个代码有效:

this.readdataservice.getPost().subscribe(
            posts => { this.posts = posts; }
        );

但如果我使用它,它应该是一样的吗?但这不起作用.

this.readdataservice.getPost().subscribe(
            function (posts) {
                this.posts = posts;
            }

        );

解决方法

默认情况下,JS执行调用者范围内的函数.如果你传递一个函数来在其他地方调用,这指向调用者.
在您的代码中,您通过subscribe(…)方法函数传递给observable,然后在发出事件时由observable调用函数.

如果使用箭头函数,则会一直指向定义它的类.

另一种方法是使用.bind(this)来告诉JS这应该继续指向当前的类实例.

this.readdataservice.getPost().subscribe(
        function (posts) {
            this.posts = posts;
        }.bind(this)

    );

另见https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions/Arrow_functions

猜你在找的JavaScript相关文章