저는 fabric.js를 사용하고 있는데 어느 순간 다음 코드를 사용했습니다:
으아아아하지만 handleScaled
函数中opt.action
정의되지 않음:
console.log(opt.action)
在函数调用之前会正确显示“scale”,但是当我在 handleScaled
中调用相同的内容时,opt.log(opt.action) 会正确显示“scale”。操作
정의되지 않음.
호출된 함수 범위 내에서 opt.action
가 존재하지 않는 것 같은데 호출 직전에 존재하는 이유는 무엇인가요?
올바른 작업 코드는 작업이 "scale"인 경우에만 호출됩니다. handleScale
:
코드에서
handleScaled
函数之前记录opt.action
时,它会正确显示“scale”,因为它正在访问action
传递给canvas.on
事件处理程序的回调函数中opt
对象的 code> 属性。当您在handleScaled
函数中记录opt.action
时,它显示为undefined
,因为opt
对象被传递给handleScaled
函数是该对象的另一个实例。它没有action
属性,因为它与之前记录的opt
를 호출하면 개체가 다릅니다.함수에서
으아악opt.action
可以在handleScaled
에 액세스할 수 있도록 하려면 다음과 같이 코드를 수정하면 됩니다.opt
对象直接传递给handleScaled
函数,您可以在函数作用域内保留对其属性的访问权限。确保传递给handleScaled
的opt
对象包含预期的action
속성을 추가합니다.