Meteor での Todos の例を理解しようとしています。私が理解できないコードがあります:
// Returns an event map that handles the "escape" and "return" keys and
// "blur" events on a text input (given by selector) and interprets them
// as "ok" or "cancel".
var okCancelEvents = function (selector, callbacks) {
var ok = callbacks.ok || function () {};
var cancel = callbacks.cancel || function () {};
var events = {};
events['keyup '+selector+', keydown '+selector+', focusout '+selector] =
function (evt) {
if (evt.type === "keydown" && evt.which === 27) {
// escape = cancel
cancel.call(this, evt);
} else if (evt.type === "keyup" && evt.which === 13 ||
evt.type === "focusout") {
// blur/return/enter = ok/submit if non-empty
var value = String(evt.target.value || "");
if (value)
ok.call(this, value, evt);
else
cancel.call(this, evt);
}
};
return events;
};
何をevents['keyup '+selector+', keydown '+selector+', focusout '+selector] = function(){}
もたらしますか?
以下を文字列に変換する必要があるのはなぜString(evt.target.value || "")
ですか?
上記の関数の evt 引数には、.type、.target、.target.value が必要ですか? 私はevtで何を渡すことができますか?