javascript - Understanding Cranium.js code -
i reading cranium.js (https://gist.github.com/addyosmani/3769967) code addy osmani , not understand 2 lines of javascript do. entire code following:
// mix in object in order provide custom events. var events = cranium.events = { channels: {}, eventnumber: 0, trigger: function (events, data) { (var topic in cranium.events.channels){ if (cranium.events.channels.hasownproperty(topic)) { if (topic.split("-")[0] == events){ cranium.events.channels[topic](data) !== false || delete cranium.events.channels[topic]; } } } }, on: function (events, callback) { cranium.events.channels[events + --cranium.events.eventnumber] = callback; }, off: function(topic) { delete cranium.events.channels[topic]; } }; the first line don't understand is:
if (topic.split("-")[0] == events){ cranium.events.channels[topic](data) !== false || delete cranium.events.channels[topic]; } that is: understand if, don't happening inside curly braces. seems me (but wrong) if left expression true nothing happens, if not deletes cranium.events.channels[topic].
the second line don't understand is:
cranium.events.channels[events + --cranium.events.eventnumber] = callback; i don't understand double minus sign.
any comment appreciated.
if (topic.split("-")[0] == events){ cranium.events.channels[topic](data) !== false || delete cranium.events.channels[topic]; } is same
if (topic.split("-")[0] == events){ if ( cranium.events.channels[topic](data) === false ) { delete cranium.events.channels[topic]; } } and in cranium.events.channels[events + --cranium.events.eventnumber] = callback; -- subtracting 1 cranium.events.eventnumber before applying it. so, if 3 before, 2 added events.
Comments
Post a Comment