Я действительно не получаю функцию ember.js 'reopenClass. Я думал, что добавлен дополнительный код в прототип Object, поэтому все экземпляры этого объекта получат функциональность, которая была добавлена нестационарным способом. Однако это не делает. Похоже, что он только добавляет код, который можно статически выполнять. Например. У меня есть этот код:
Logger = Ember.Object.extend({
log: function(thing) {
console.log(thing + ' wassup');
}
});
var logger = Logger.create();
logger.log("1, yo")
logger.reopen({
log: function(name) {
console.log(name + 'ghurt')
}
});
logger.log("2, yo")
Logger.reopenClass({
log: function(name) {
console.log(name + 'fresh')
}
});
logger.log("3, yo")
Logger.log("4, yo")
Он выводит это:
1, yo wassup
2, yoghurt
3, yoghurt
4, yofresh
Я ожидал этого:
1, yo wassup
2, yoghurt
3, yofresh
4, undefined (I think)
Итак, мой вопрос: что делает reopenClass и когда я его использую?