그래서이 작업을 수행해야하는 몇 가지 예를 보았습니다. 하지만 분명히, 나는 그것을 놓치고 있기 때문에, 뭔가를 놓치고있다. :/객체 프로토 타입이 'this'를 사용하여 속성에 액세스 할 수 없습니다.
누군가 제발 나에게 여기에서 잘못된 것을 설명해 줄 수 있습니까? :)
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
, 여기 뭔가 잘못하고 있어요. 그러나 나는 무엇을 모른다.
감사합니다. Gergely. 당신은 function()
사용해야
화살표 (또는 로켓) 기능'this' 일반 기능'this'과 동일하지 않습니다 - 일반적으로, 화살표 기능 –
이 동의 객체들 프로토 타입 기능에 맞는 패턴하지 않습니다 @ JaromandaX와 함께. 코드를 다음과 같이 변경하십시오 :'Code.prototype.add = (v) => {'이'Code.prototype.add = function (v) {'이것은'this' 포인터를 수정합니다. 화살표 함수를 사용하면 * this 포인터는 함수가 선언 된 시점의 포인터가됩니다. – Intervalia
'''function (element)'''=> –