関数の名前が変数に格納されているparamsを使用して関数を呼び出すときに問題が発生します。私は関数を使用.call
し.apply
て呼び出しようとしましたが、あまり成功していません。
これが私が試したことです:
function slideup(){
//exec animation
}
Screen.prototype.init = function() {
//has access to `this`, Screen is instantiated via constructor and passed the calling element
var self = this;
self.animation = 'slideup';//this is a switch in my code with default val of 'slideup'
function hashChange(){
self.animation.apply(self, [arg1,arg2]);
}
}
...に置き換えるself.animation.apply
とslideup.apply
、関数は正しく実行されますが、実行すると、self.animation.apply
またはself[animation].apply
が取得されself.animation.apply is not a function
ます。変数に格納されている文字列値を使用してslideup()
関数を呼び出し、適切な引数を渡すにはどうすればよいですか?アイデアは、self.animation
変数がカスタムアニメーション関数の名前を格納するということです。これは、カスタムプラグインの渡されたオプションを介してオーバーライドできます。