저는 fabric.js를 사용하고 있는데 어느 순간 다음 코드를 사용했습니다:
으아아아하지만 handleScaled
函数中opt.action
정의되지 않음:
console.log(opt.action)
在函数调用之前会正确显示“scale”,但是当我在 handleScaled
中调用相同的内容时,opt.log(opt.action) 会正确显示“scale”。操作
정의되지 않음.
호출된 함수 범위 내에서 opt.action
가 존재하지 않는 것 같은데 호출 직전에 존재하는 이유는 무엇인가요?
올바른 작업 코드는 작업이 "scale"인 경우에만 호출됩니다. handleScale
:
P粉3563617222023-09-13 00:36:00
코드에서 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
속성을 추가합니다.