我正在学习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
。这是问题吗?有解决方法吗?非常感谢
在执行期间无法通过赋值进行设置,并且每次调用函数时都可能不同。
答案 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"
}
}
函数的匿名函数中创建的,但您在该闭包之外引用它,因此无需引用。