Uncaught TypeError: Cannot read property "hasOwnProperty" undefined

Ich bin mit fabric.js zeichnen Sie text auf einer Leinwand. Ich habe eine Funktion zum erstellen einer text-label. Ich möchte Etiketten eine Funktion auszuführen, wenn Sie ausgewählt wurden. Die syntax für diese ist label.on('selected', functionToCall()); Dies funktioniert gut, wenn ich die Funktion eine anonyme innere Funktion, aber wenn ich brechen Sie aus als eine separate Funktion, erhalte ich eine " Uncaught TypeError: Cannot read property 'hasOwnProperty' of undefined. Was mache ich falsch?

Unten ist der code, der bei mir nicht funktioniert. Hier ist die broken code auf jsfiddle, und eine version, die mit anonyme Funktion, die funktioniert.

"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);
});

InformationsquelleAutor WhiteHotLoveTiger | 2014-05-12

Schreibe einen Kommentar