Помогите с функцией
Если делать как в примере ниже то переменная i обнуляется, а если не передавать ее аргументом то счетчик становится общей для всех вызовов функции, подскажите пожалуйста как сделать для каждого вызова свой счетчик?
i = 0
function calc(i, step){
i = i+step
console.log(i)
}
calc(i, 20)
calc(i, 30)
|
|
Цитата:
|
Цитата:
function MyClass() { //Какой-то важный класс, который будет очень часто использоваться
};
MyClass.prototype.myMethod = function() {
};
(function() { //Тут весь нужный код
var a, b, c, d, e, f;
function myLocalFunc() { }
})();
А если важный класс использует какие-то переменные из вне, то лучше сделать так:
(function() {
var foo = 'bar';
window.MyClass = function() {
alert(foo);
};
MyClass.prototype.myMethod = function() {
};
})();
|
Ruslan_xDD, подобные конструкции для меня еще неисследованная территория.
|
AntonMs, ничего сильно так иследовать не нужно, просто запомните это и лепите везде как стандартный шаблон. Со времени всё поймёте сами. :)
|
Цитата:
|
AntonMs, Объясню вкратце, мы создаём ф-цию, которая вызывает саму себя:
(function() {
})();
А внутри неё, все переменные локальны, т.е., глобал мы не засоряем, понятно? |
Ruslan_xDD, понятно, но вроде не встречал ситуации где это нужно.
|
Цитата:
Тогда вы пишите:
;(function(parameters){
//создаём объект jQuery и вешаем на него все необходимые методы
return jQuery;
}();
|
Цитата:
|
Цитата:
Есть, правда, еще небольшой профит. Переменные локальны -- лукапы будут быстрей, если глобальный объект будет сильно захламлен. Но это только если производительность очень сильно критична, экономия на спичках в чистом виде + "бонусом" получаем оверхед по памяти. |
loljs, я тоже так думаю, но из-за неопытности - раньше казалось что причин так делать больше чем две)
|
| Часовой пояс GMT +3, время: 19:52. |