私はFabric.js javascriptライブラリの_drawControl
機能を理解しようとしていますが、関数のようには見えず条件付きではないので、2行分を見つけられませんでした。||の1行Javascriptの文字ですか?
1行目:
2行目:
ctx[methodName + 'Rect'](left, top, size, size);
のフル機能:
_drawControl: function(control, ctx, methodName, left, top) {
if (!this.isControlVisible(control)) {
return;
}
var size = this.cornerSize, stroke = !this.transparentCorners && this.cornerStrokeColor;
switch (this.cornerStyle) {
case 'circle':
ctx.beginPath();
ctx.arc(left + size/2, top + size/2, size/2, 0, 2 * Math.PI, false);
ctx[methodName]();
if (stroke) {
ctx.stroke();
}
break;
default:
isVML() || this.transparentCorners || ctx.clearRect(left, top, size, size);
ctx[methodName + 'Rect'](left, top, size, size);
if (stroke) {
ctx.strokeRect(left, top, size, size);
}
}
}
'ISCO場合は、最初の2例は、明白ですntrolVisible'は真を返し、そうでなければリターンします。 '.cornerStyle'が' circle'でなければデフォルトになります。その後、「魔法」が始まります...しかし、それは本当に簡単です。 '||'は論理和であるので、 'isVML'関数を呼び出します。もし真を返すならば、他のものをチェックする必要はありません。偽を返したら' .transparentCorners'をチェックし、偽'ctx.clearRect'。 – adeneo