C ++とJavaから来て、私はJavascriptの初心者です。このコードパターンは私を混乱させます(jQueryアプリケーションにあります):
var opts = { drop : empty};
function drop(arg){
opts.drop(arg);
//do something
}
これをどのように読むか:オブジェクトopts
が作成され、属性drop
が宣言されますが、空として初期化されます。次に、function(-object)drop
が定義されます。2行目では、optsオブジェクトのdrop属性がメソッドとして呼び出されています。しかし、私の理解でopts.drop
は、空です。したがって、呼び出し可能であってはなりません。
ここでは何が起きるのですか?重要なコードが欠落しているのでしょうか、それともこれは意味のあるパターンですか?
編集:ソース:https ://github.com/weixiyen/jquery-filedrop/blob/master/jquery.filedrop.js