Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объясните как работает... (https://javascript.ru/forum/misc/36396-obyasnite-kak-rabotaet.html)

jsgeek 14.03.2013 01:04

dmitriymar, я это и имел в виду, просто для ясности происходящего упростил :)

рони 14.03.2013 01:11

что-то вот такое хочется )))
function Obj(name,age){
    this.name = name;
    this.age = age;
    return  Obj
   };

function Obj2(pr,name,age){
    this.base = Obj.call(this, name, age);
    this.property = pr;
}

var newOb = new Obj2('Cool','Alexej',22);

alert(newOb['name']) //выведет Alexej
newOb['base']('test',5)
alert(newOb['name'])

jsgeek 14.03.2013 01:19

рони, ну да return в Obj помогает достичь желаемого в данном контексте.
Но:
var o1 = new Obj('test', 11)

сделает o1 еще одним конструктором...
Вообщем нужно использовать прототипы :yes:

Или на крайняк заменить в конструкторе
return Obj
на
if (!(this instanceof Obj)) {
        return  Obj;
    }
Но я бы не советовал что-то подобное делать в конструкторе, т.к. он не для таких манипуляций предназначен.


Часовой пояс GMT +3, время: 06:36.