|
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 23
|
||||||
О передаче аргументов в функцию06.03.2016, 21:49. Показов 2311. Ответов 16
Метки нет (Все метки)
Я полный нубер, не могу понять по прердаче аргументов в ф-цию. Вот взять
то есть по значению передаються только примитивные типы?
0
|
||||||
| 06.03.2016, 21:49 | |
|
Ответы с готовыми решениями:
16
Передача аргументов в функцию, вызываемую setTimeout Описать и протестировать функцию с переменным количеством аргументов произвольного типа, возвращающую максимум
|
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
|
| 06.03.2016, 21:55 | |
|
Да. Примитивы типа целого или строки передаются как значение (или точнее как копия).
А объекты уже по ссылке.
1
|
|
|
9 / 9 / 2
Регистрация: 24.01.2016
Сообщений: 87
|
||
| 07.03.2016, 09:51 | ||
|
1
|
||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 07.03.2016, 10:19 | |
|
с объектами напрямую яваскрипт вообще не работает
var myVar = new Object; // переменная myVar - это не сам объект, а лишь ссылка на него аналогично и с объектами DOM var myVar2 = document.getElementById ('elem_id'); // и myVar2, и document.getElementById ('elem_id') -- это ссылки на объект, // а сам объект (HTML-тег с id="elem_id") виртуален и находится в DOM
1
|
|
|
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 23
|
||
| 07.03.2016, 10:55 [ТС] | ||
|
efx,
0
|
||
|
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
|
||
| 07.03.2016, 13:51 | ||
Сообщение было отмечено use strict как решение
Решение
1
|
||
|
81 / 81 / 50
Регистрация: 26.11.2012
Сообщений: 303
|
|
| 07.03.2016, 14:28 | |
|
efx, Здрасте. по значению передаются только примитивные типы. не запутывайте человека
1
|
|
|
9 / 9 / 2
Регистрация: 24.01.2016
Сообщений: 87
|
||||||||
| 07.03.2016, 18:16 | ||||||||
|
Вы в си или с++ пробовали по ссылке передавать аргумент? Вы знаете, что именно присваивается идентификатору по ссылке? Вот вам пример:
Добавлено через 4 минуты Присвоить саму ссылку именно на объект и "присвоить по ссылке" это немного разные вещи
1
|
||||||||
|
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 23
|
||||||
| 07.03.2016, 20:53 [ТС] | ||||||
|
efx, Все равно тяжело вьезжаю. Вот функция
Добавлено через 19 минут efx, ваш пример, чесно говоря, меня вообще из тапок выбил. обьект передается в ф-цию, там он меняеться( добавляем свойство str), затем какая то вуду магия пошла обьясните пожалуста, хотя бы пару строчек
0
|
||||||
|
9 / 9 / 2
Регистрация: 24.01.2016
Сообщений: 87
|
||
| 07.03.2016, 21:20 | ||
Сообщение было отмечено use strict как решение
РешениеВы параметру присвоили ссылку на объект (массив), то есть передав массив параметр получил копию значения (ссылки) на объект, с этим значением вы и работаете в функции. Параметр имеет свою копию ссылки на объект, никак не связанную с оригинальной ссылкой. Это две разные ссылки, просто ссылаются на один объект в памяти. Если бы в JS было присваивание по ссылке, то ЛЮБОЕ новое присвоенное значение параметру, так же отражалось бы на оригинальной переменной. Чтобы в этом лучше разобраться и понять что такое присваивание по ссылке и как оно работает на самом деле, установите самый простой компилятор по си к примеру (pelles c), выполните присваивание по ссылке и вы увидите разницу между присваиванием по ссылке и по значению. Лучше один раз попробовать, увидеть и понять, чем пытаться понять без наглядного примера
1
|
||
|
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 23
|
|
| 07.03.2016, 21:31 [ТС] | |
|
efx, дело в том что передача по значению и по ссылке мне, к примеру в ++, мне ясна (во всяком случае мне так хочеться думать). Так вот здесь совсем другой коленкор выходит. А почитаю ка я Фленегана, вдруг пойму чего. А вам - большое спасибо.
0
|
|
|
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 23
|
|||||||||||
| 08.03.2016, 10:12 [ТС] | |||||||||||
|
efx, Спасибо, очень и очень доходчивая книженция. По скольку тип ссылочный, создается илюзия что
обьекты идут по ссылке, на самом деле все передаетьс по значению. В плюсах это так
0
|
|||||||||||
|
9 / 9 / 2
Регистрация: 24.01.2016
Сообщений: 87
|
|
| 08.03.2016, 17:19 | |
|
угу
1
|
|
|
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
|
||
| 10.03.2016, 03:16 | ||
Это создает новую переменную и равносильно инструкции var obj = new Object; В старом стандарте JavaScript псевдо-массив arguments и переменные-параметры ссылаются друг на друга, в новом нет. Поэтому если установить внутри функции директиву strict, то arguments покажет старое значение, в другом случае мы увидим новое значение. Так или иначе, все объекты передаются по ссылке это черным по белому написано в стандарте Call by reference(pass-by-reference). В общем-то меня не это интересует, а то откуда этот листинг с комментариями. Из книги??
0
|
||
|
9 / 9 / 2
Регистрация: 24.01.2016
Сообщений: 87
|
|
| 10.03.2016, 07:19 | |
|
0
|
|
|
61 / 39 / 20
Регистрация: 06.12.2015
Сообщений: 155
|
||
| 10.03.2016, 07:40 | ||
|
0
|
||
| 10.03.2016, 07:40 | |
|
Помогаю со студенческими работами здесь
17
передача аргументов в функцию Ошибка при передаче аргументов в функцию итерация при передаче аргументов в функцию VS 2012: Ошибка при передаче аргументов в функцию WriteLine()
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|