所以,我看到了几个应该有用的例子。但显然,我错过了一些东西,因为它没有。 :/
有人可以向我解释一下我在这里做错了什么吗? :)
function Code (b) {
this.b = b
this.arr = []
}
Code.prototype.add = (v) => {
console.log(this.b)
this.arr.forEach(element => {
console.log(element)
});
this.arr.push(v)
}
var c = new Code('bla')
console.log(c.add('asdf'))
所以这会引发错误:
this.arr.forEach(element => {
^
TypeError: Cannot read property 'forEach' of undefined
显然,我在这里做错了什么。但我不知道是什么。
谢谢! 盖尔盖伊。
答案 0 :(得分:1)
function Code (b) {
this.b = b
this.arr = []
}
Code.prototype.add =function(v){
console.log(this.b)
this.arr.forEach(function(element){
console.log(element)
});
this.arr.push(v)
console.log(this.arr)
}
var c = new Code('bla')
console.log(c.add('asdf'))
您应该使用function()
() =>
箭头功能,因为箭头功能this
的工作方式不同。
箭头函数的this
仅指存在于外部范围内的this
。
答案 1 :(得分:-1)
function Code (b) {
this.b = b
this.arr = []
}
Code.prototype.add = function(v) {
console.log(this.b)
this.arr.forEach(element => {
console.log(element)
});
this.arr.push(v)
}
var c = new Code('bla')
console.log(c.add('asdf'))