{console.log(opt.action);//="scale"handleScaled ( opt);});Mais dans la fonction handleScaled, opt.action n'est pas défini : functionhandleScaled(op"> La clé d'objet existe en dehors de l'appel de fonction mais pas dans la portée de la fonction-Questions et réponses sur le réseau chinois PHP
La clé d'objet existe en dehors de l'appel de fonction mais pas dans la portée de la fonction
P粉133321839
P粉133321839 2023-09-12 13:57:28
0
1
431

J'utilise fabric.js et à un moment donné j'ai utilisé le code suivant :

canvas.on("object:modified", (opt) => { console.log(opt.action); //="scale" handleScaled(opt); });

mais enhandleScaled函数中opt.actionundéfini :

function handleScaled(opt) { console.log(opt.action) //=undefined console.log(opt) //displays the whole opt object but there is no "action" in it //further handleScaled code }

console.log(opt.action)在函数调用之前会正确显示“scale”,但是当我在handleScaled中调用相同的内容时,opt.log(opt.action) 会正确显示“scale”。操作Indéfini.

Pourquoiopt.actionne semble-t-il pas exister dans le cadre de la fonction appelée, mais existe juste avant l'appel ?

Le code de fonctionnement correct n'est appelé que lorsque l'opération est "à l'échelle"handleScale:

canvas.on("object:modified", (opt) => { if (opt.action === "scale") { handleScaled(opt); } });

P粉133321839
P粉133321839

répondre à tous (1)
P粉356361722

Dans votre code, lorsque vous appelezhandleScaled函数之前记录opt.action时,它会正确显示“scale”,因为它正在访问action传递给canvas.on事件处理程序的回调函数中opt对象的 code> 属性。当您在handleScaled函数中记录opt.action时,它显示为undefined,因为opt对象被传递给handleScaled函数是该对象的另一个实例。它没有action属性,因为它与之前记录的optl'objet est différent.

Pour rendreopt.action可以在handleScaledaccessible dans une fonction, vous pouvez modifier le code comme ceci :

canvas.on("object:modified", (opt) => { console.log(opt.action); //="scale" handleScaled(opt); }); function handleScaled(opt) { console.log(opt.action); // "scale" (should display correctly) // further handleScaled code }

En ajoutant l'attributopt对象直接传递给handleScaled函数,您可以在函数作用域内保留对其属性的访问权限。确保传递给handleScaledopt对象包含预期的action.

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!