Конструкторы в 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, время: 00:15. |