{console.log(opt.action);//="scale"handleScaled ( opt);});しかし、handleScaled 関数では opt.action が定義されていません: functionhandleScaled(op)"> オブジェクトキーは関数呼び出しの外に存在しますが、関数のスコープ内には存在しません-PHP中国語ネットワークQ&A
オブジェクトキーは関数呼び出しの外に存在しますが、関数のスコープ内には存在しません
P粉133321839
P粉133321839 2023-09-12 13:57:28
0
1
425

私は Fabric.js を使用していて、ある時点で次のコードを使用しました:

リーリー

しかし、handleScaled関数opt.actionは未定義です:

リーリー 関数呼び出し前の

console.log(opt.action)には「scale」が正しく表示されますが、handleScaledで同じものを呼び出すと、opt .log(opt .action) を実行すると、「スケール」が正しく表示されます。オペレーションは未定義です。

opt.actionが呼び出された関数のスコープ内に存在しないように見えるのに、呼び出しの直前に存在するのはなぜですか?

正しく動作するコードは、操作が「スケール」の場合にのみ

handleScaleを呼び出します:ああああ

P粉133321839
P粉133321839

全員に返信 (1)
P粉356361722

コードでは、handleScaled関数を呼び出す前にopt.actionをログに記録すると、actionにアクセスしているため、「scale」が正しく表示されます。canvas.onイベント ハンドラーのコールバック関数に渡されるoptオブジェクトの code> 属性。opt.actionhandleScaled関数に記録すると、optオブジェクトがに渡されるため、unknownとして表示されます。 handleScaled関数は、このオブジェクトの別のインスタンスです。これは、以前に記録されたoptオブジェクトとは異なるため、action属性を持ちません。

handleScaled関数でopt.actionにアクセスできるようにするには、コードを次のように変更します。

リーリー

optオブジェクトをhandleScaled関数に直接渡すことにより、関数スコープ内でそのプロパティへのアクセスを維持できます。handleScaledに渡されるoptオブジェクトに、予期されるactionプロパティが含まれていることを確認してください。

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!