打字稿-无法访问Array.some中的“此”

时间:2018-07-16 22:26:42

标签: javascript arrays typescript

我正在使用Typescript。我在类的方法内部使用方法Array.some。 像这样:

class Example {
    constructor(private readonly foo: string) {}

    test(array: Array<string>) {
        array.some(function (element) {
            if (element == this.foo) {
                return true 
            } else {
                return false 
            }
        })

    }
}

但是,我无法访问this.foo内的array.some。我只能在array.some之外访问它。

我阅读了文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

,似乎我必须传递可选参数thisArg的值。但是我不确定应该在代码中的哪个位置放置

我尝试过,但是没有用。

 class Example {
    constructor(private readonly foo: string) {}

    test(array: Array<string>) {
        array.some(function(element) {
            if (element == this.foo) {
                return true 
            } else {
                return false 
            }
        }, this : Example)

    }
}

1 个答案:

答案 0 :(得分:1)

使用fat arrow function来保留this引用。

class Example {
    constructor(private readonly foo: string) {}

    test(array: Array<string>) {
        array.some(element => {
            if (element == this.foo) {
                return true 
            } else {
                return false 
            }
        })

    }
}