<a href="#" onclick="cock();return false;">bar?</a>
// user.js
module.exports = function() {
var foo = 'bar';
var fn = function() {
// тут будет доступно значение foo = 'bar'
return foo;
}
return fn;
}
var controllers = {};
controllers.user = require('./controllers/user')(); // обратите внимание на ()
controllers.account = require('./controllers/account')();
console.log(controllers.user()); // bar
console.log(controllers.account()); // baz
// user.js
module.exports = { foo: 'bar' };
var controllers = {};
controllers.user = require('./controllers/user');
controllers.account = require('./controllers/account');
console.log(controllers.user.foo); // bar
console.log(controllers.account.foo); // baz
var controllers = {};
var User = require('./controllers/user');
var Account = require('./controllers/account');
controllers.user = new User();
controllers.account = new Account();
console.log(controllers.user.foo);
UserSchema.pre "save", function(next) {
var self = this;
UrlNameCounter.findOneAndUpdate({username: this.username}, {$inc: {count: 1}}, {upsert: yes},
function(err, counter) {
if (counter.count > 1) {
self.username = self.username + "-" + counter.count;
}
})
}
Все весьма просто, хотя, и немного непонятно по началу как вы уже заметили.
MVC, который крутится вокруг объектной модели, построен на так называемых делегатах. Это такие интерфейсы которые помогают кидать данные куда надо и при том сохранять инкапсуляцию.
В общем методы которые вы имплементируете вызываются UITableView после отрисовки. Таблица для начала спрашивает своего делегата по "ДатаСурсу" - "а сколько, собственно, мне нарисовать ячеек?". А потом - "а какие, собственно, ячейки рисовать?". Ну и т.д.
С помощью делегатов одни объекты могут попросить другие объекты сделать что-то за них (делегировать). Так они защищаются от лишних лап внутри их самих. Это одна из причин по которой Objective-C называют "самым идеологически правильным ООЯП".
Надеюсь не запутал больше ;) Удачи вам в изучении!