你可以在forEach中为thisArg设置值吗?

时间:2017-01-19 06:35:48

标签: javascript

我正在学习javascript,并希望澄清我在有关在thisArg函数中设置forEach的文档中所阅读的内容。在我的recycleObject函数中,value是一个新对象;我以为我可以利用thisArg参数来访问数组中的不同元素,但即使它是Object类型,我也会得到Uncaught ReferenceError: value is not defined

function recycleObject(date){
    console.log(date) //date is a number like 1999
    recycle.forEach(function(value){ //each element processed in array
        console.log(typeof(value))
        if (this.date==date){return this}
    },value) //this value <--value is not defined
}

Mozilla文档说在执行期间无法设置this。这是问题吗?有解决方法吗?非常感谢

  

在执行期间无法通过赋值进行设置,并且每次调用函数时都可能不同。

1 个答案:

答案 0 :(得分:1)

您在ReferenceError获得value的原因是您在使用它的范围内没有定义价值。 forEach是在您传递给// package.json // The property name: @my-org/... means that the package is scoped - // you can point a @scope at a specific NPM registry. // See https://docs.npmjs.com/misc/scope // We use myget.org to host our private packages. { "name": "@my-org/ng-lib", "version": "1.0.8", "main": "dist/index.js", "scripts": { "transpile": "tsc --outDir ./", "clean": "rimraf ./services && rimraf ./*.js && rimraf ./*.d.ts" }, "author": "*** <me@my-org.com>", "license": "ISC", "files": [ "**/*.js", "**/*.d.ts" ], "typings": "index.d.ts", "dependencies": { "@types/angular": "^1.5.20", "angular": "^1.5.9" }, "devDependencies": { "rimraf": "^2.5.4" } } 函数的匿名函数中创建的,但您在该闭包之外引用它,因此无需引用。