Конструкторы в Javascript, OOP
Подскажите, пожалуйста, можно ли объявить объект с конструктором, не через функцию.
если я объявляю объект через литерал: var myObj = { windowScrollPosition: 0, showHeader : false, recalculate : function(){ // function recalculating coords } } И я хочу передать функции объект, относительно которого хочу считать координаты.. что-то типа: var coordObj = new myObj(objForCalc); Я могу как-то объявить конструктор? или нужно делать только через функцию, а не литерал?! |
Вы написали что-то странное.
|
function myObj(...) { ... } myObj.свойство = значение; // и т. д. Вы это имели ввиду? |
В смысле странное? Я хочу узнать, может ли быть конструктор у объекта, описанного литералом? или я должен там создать функцию init() и ее запускать, чтоб передавать параметры?
В php есть метод __construct(), который вызывается при создании объекта, есть ли в js такое? Matre, а разве так можно делать? Ну в принципе примерно это, только чтоб это делалось при создании объекта... |
Цитата:
|
Цитата:
Можно написать функцию, которая будет перегонять свойства из созданного объекта (не порождённого myObj(), а другого объекта) в свойства myObj. Примерно так: function extend(from, to) {...} extend({ ключ : значение }, myObj); |
Цитата:
<p id="element">text</p> <script type="text/javascript"> function Foo(i) { this.i = i; }; Foo.prototype = { get : function() { return document.getElementById(this.i); }, set : function() { this.get().style.color = 'red'; } } var bar = new Foo('element'); bar.set(); </script> |
Часовой пояс GMT +3, время: 15:38. |