tag:blogger.com,1999:blog-8487749935709371325.post438319918663823687..comments2023-08-28T02:43:23.779-07:00Comments on Advanced Programming Features: JavaScript: Выяснение имени класса (конструктора)C'est la viehttp://www.blogger.com/profile/10891622296508327577noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-8487749935709371325.post-39193337215521834272009-09-14T23:33:11.736-07:002009-09-14T23:33:11.736-07:00Такого способа я не знаю. Вообще-то, согласно прав...Такого способа я не знаю. Вообще-то, согласно правилам семантики языка, в выражении var name = new myObject(); сначала происходит создание переменной name типа undefined, затем вычисляется правая часть, т.е. создаётся новый объект и вызывается для него конструктор, и только потом результат этого выражения присваивается переменной name. Т.е. на этапе работы конструктора нельзя понять, какой из undefined-переменных будет присвоен результат этой работы. К тому же мы не можем быть полностью уверены, что результат работы конструктора вообще попадёт в переменную в глобальной области видимости - с таким же успехом это может быть поле какого-либо объекта или инкапсулированная в каком-либо замыкании переменная...<br />Мне кажется, если задача стоит так, лучше использовать другой подход - инициалилизацию объекта, когда он уже создан, например - и вынести зависимуж от имени переменной логику в него.C'est la viehttps://www.blogger.com/profile/10891622296508327577noreply@blogger.comtag:blogger.com,1999:blog-8487749935709371325.post-83300889238137698612009-08-25T11:41:30.442-07:002009-08-25T11:41:30.442-07:00опечатался :)
var name = new myObject();опечатался :)<br />var name = new myObject();dynhttps://www.blogger.com/profile/08552324260073629022noreply@blogger.comtag:blogger.com,1999:blog-8487749935709371325.post-25470191772405583002009-08-25T11:12:48.469-07:002009-08-25T11:12:48.469-07:00А как быть если в конструкторе нужно узнать имя со...А как быть если в конструкторе нужно узнать имя создаваемого объекта? Например:<br />var name = myObject();<br />Хочу знать имя name в функции конструкторе myObject(). перебор в цикле свойств объекта window в ИЕ выдает только стандартные объекты и обработчики (в остальных браузерах работает). Причем если вызвать window['name'] то все нормально - получим ссылку на name, а в цикле никак(имеется в виду ИЕ). Работает также если объявить через<br />this.name = new myObject() даже в локальных областях видимости. Вобщем очень хочется знать name в конструкторе :) как быть?dynhttps://www.blogger.com/profile/08552324260073629022noreply@blogger.com