これを使用してウィジェット内の関数を呼び出す人を時々見かけます
this.myFunction.apply(this, arguments);
これの代わりに:
this.myFunction();
somefunction.apply(thisobj, argsarray)
上記は関数 somefunction を呼び出し、これを関数のスコープ内で thisobj に設定し、引数として argsarray からの引数を関数に渡します。
しかし、以下の場合を考えると、関数を直接呼び出しても .apply() を使用しても同じではないでしょうか? jQuery サイト自体を含め、代わりに .apply() メソッドを好むいくつかのチュートリアルを見てきました。http://jqueryui.com/demos/widget/
これはウィジェットの「標準」ですか、それとも他に欠けているものがありますか?
_create: function() {
var that = this;
this.myButton = $( "<button>", {
text: "My Button"
})
.appendTo( this.element )
.bind("click", function() {
// _bind would handle this check
if (that.options.disabled) {
return;
}
that.displayMessage.apply(that, arguments);
// Why not just call the following?
// that.displayMessage();
});
},
displayMessage: function() {
alert("Hey!");
}