как получить ссылку на переменную через аргумент функции?
я хочу знать как реализовать это(если возможно конечно):
function change(variable){ variable = 10 ; } var x = 1 ; change(x) ; alert(x) ; //выведет 10 но ничего лучше чем это лучше не придумал function change(variable){ window[varible] = 10 ; } var x = 1 ; change("x") ; alert(x) ;//выведет 10 прошу помощи заранее спасибо |
передайте объект или массив
|
Для подобного доступа можно использовать функции
function change(changer){ changer(10); } var x = 1; change(function(arg){x=arg;}); alert(x); |
Цитата:
|
Используй объект тебе сказали, примитивные типы данных передаются в функцию значением, которое тупо копируется, а объекты передаются ссылками на оригинал объекта. Передай в функцию ссылку на объект.
var obj = {x:20}; function change (object){ object.x = 11; } alert(obj.x); //20 change(obj); alert(obj.x); //11 |
_dude01, не понимаешь в чем-то? Проверь прежде чем утверждать!
function change(changer){ changer(10); } var x = 1; change(function(arg){x=arg;}); alert(x); |
Давно мечтаю о сахаре для такого:
var x; function setX(_){x=_;} function getX(){return x;} function accessX(_){ if(arguments.length) x=_; return x; } |
SV0L0CH,
сеттеры и геттеры не , не слышал? |
в JS в них нет смысла
|
Цитата:
тоже само что и function change(arg) { x = arg; } var x = 1 ; change(10) ; alert(x) ; |
_dude01,
если "реализовать твою просьбу" представить как смысл, то этот смысл реализуется, и в этом есть смысл. Цитата:
|
Цитата:
[[PrimitiveValue]] у числа заменить не удастся, ибо это скрытые кишки объекта или можно замутить такие приколы, до которых рука дотягивается function change(variable){ variable.valueOf = variable.toString = function () { return 10; }; } var x = new Number(1); change(x) ; alert(x) ; //выведет 10, тут исп-я toString alert( x / 10 ); // выведет 1, тут исп-я valueOf |
а в чём разница между
var x = 1; //и var x = new Number(1);? |
в первом случае примитив, во втором обьект.
Слушай ты чо тупой то какой тебе же сказали решение, чо непонятного? Примитивное значение по ссылке передать ни как. Все? вопрос исчерпан? Судя по вашему сообщению, вы ну совсем не знаете javascript. Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. |
Цитата:
|
А вот и есть и образуются они общепринятым неймспейсом "_"
function Cat() { Object.defineProperties(this, { _name: {writable: true}, name: { get : function () { return this._name; }, set : function (value) { return this._name = value; } } }); } var cat = new Cat; cat.name = "Ашот"; alert(cat.name); |
Цитата:
|
это типа побочный эффект чего-то или так задуманно)?
надо ли для них писать jsdoc сверху? |
Цитата:
|
Не, я имею ввиду они НАМЕРЕННО так делают? или это случайно так получается
|
конечно намерено - чтобы меньше букв в минифицированном коде было
|
а что весомей jsdoc или это _
если будет написано @public _ololo то что победит? |
он не понимает @public — там немного обрезанный JSDOC
оба срежутся |
А можно угарнуть вот так :)
Number.prototype.ai = function(){ return JSON.stringify(this)*1; }; console.log((123123).ai()); |
Часовой пояс GMT +3, время: 08:23. |