Как циклом сложить значения свойств объекта?
В учебнике есть пример с использованием this.a+this.b
Но что если свойств десятки? var o = {a:1, b:34, c:352} //итд. function s(obj) { for(key in obj) { obj[key]+? //..... kak tut? } } s(o) |
var o = {a:1, b:34, c:352} //итд. function s(obj) { var rez = 0; for(key in obj) { rez += obj[key]; } return rez; } alert(s(o)); |
спасибо, а вот еще вопросик, надо чтобы при вызове ф-и f(); ее параметр записывался в массив, вот только при каждом вызове, он его перезаписывает, а не добавляет :
function f(x) { var mass = []; mass.push(x); alert(mass[0]) // сначало 1, а потом 2 (и все на индексе [0]) } f(1); f(2); |
вам нужно использовать замыкания, вот пример простого счетчика
http://learn.javascript.ru/closures-usage |
Спасибо, с данный материалом все ясно, получилось сделать следующее
function mass() { var m = []; return function(arg) { m.push(arg) return m; } } var mas = mass(); mas(122); mas(323) alert(mas()) // оба аргумента в массиве[/HTML] Но как быть если ф-ю с этими аргументами передаются из другой ф-и? : function mass() { // должна учитывать переданные аргументы var m = []; return function(arg) { m.push(arg) return m; } } var copy; function argument(arg) { // возможно какие-то манипуляции с arg copy = mass(); copy(arg) } argument(1); argument(23); alert(copy()) // в массиве только 23 :((( |
hoax,
может вам 20 строку перенести на 15 ? |
Цитата:
Иначе либо рисуйте объект, либо юзайте функцию как объект, поскольку она и так объект. На нормальном языке программирования ваше желания выражается статической переменной, которую можно в js изобразить как вот тут советуют http://stackoverflow.com/questions/1...-in-javascript |
Часовой пояс GMT +3, время: 16:52. |