[解決済み] Uncaught TypeError: 未定義のプロパティ 'hasOwnProperty' を読み取れませんでした。
2022-02-08 22:35:25
質問
fabric.jsを使って、キャンバスにテキストを描いています。テキストラベルを作成する関数があります。ラベルが選択されたときに関数を実行させたいと思います。このための構文は次のとおりです。
label.on('selected', functionToCall());
これは、関数を無名の内部関数にするとうまくいきますが、別の関数として分割すると、Uncaught TypeErrorが発生します。
未定義のプロパティ 'hasOwnProperty' を読み取ることができません。
何が間違っているのでしょうか?
以下は、私のために動作しないコードです。以下は 壊れたコード を設定したバージョンと、jsfiddle上で 無名関数 というのがありますが、これは動作します。
"use strict";
var canvas = new fabric.Canvas('c', {selection: false}),
position = 50;
function onLabelSelection(theLabel) {
if (theLabel.hasOwnProperty('edge')) {
selectedEdge = theLabel.edge;
} else {
selectedEdge = null;
}
}
function createLabel() {
var label;
label = new fabric.Text('Hello World', {
left: position,
top: position
});
position += 50;
label.edge = null;
label.on('selected', onLabelSelection(this));
return label;
}
canvas.on('mouse:up', function() {
var newLabel = createLabel();
canvas.add(newLabel);
});
解決方法は?
<ブロッククオート
この構文は
label.on('selected', functionToCall())
いいえ、イベントハンドラの構文は、次のとおりです。 渡す を呼び出すのではなく、ハンドラ関数を呼び出します。
label.on('selected', functionToCall);
を試してみてはいかがでしょうか。
label.on('selected', onLabelSelection.bind(this))
または
this
内部
createLablel
はどうやら
undefined
- ちょうど
label.on('selected', onLabelSelection)
.
関連
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み】JavaScriptで':'(コロン)は何をするのか?
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み】Vueが定義されていない
-
[解決済み] React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】Google MAP API Uncaught TypeError: nullのプロパティ'offsetWidth'を読み取れませんでした。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】Uncaught ReferenceError。Reactが定義されていない
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】Babel NodeJS ES6: SyntaxError: 予期しないトークンのエクスポート
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]