Профиль пользователя заблокирован сроком «навсегда» без указания причины
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Да. Спасибо огромное. Теперь точно вопросов больше нет, по крайней мере пока
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Большое спасибо за ответы. Честно говоря читал, но думаю, что не помешает еще раз, тем более как раз обратил внимание на использование и объяснение функции constructor.
    В целом единственным вопросом для меня осталось как получить «в явном виде» доступ к таким объектам как Array, Function, т.е. я могу посмотреть, что в Object.prototype просто набрав в консоли Object.prototype, также к примеру со String и Number, а вот с Function и Array не выходит. Может есть другие способы перебрать все их методы и свойства?
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Спасибо за ответ. По поводу изменения глобальных объектов я понимаю, что лучше не делать, но на данный момент моей целью является разобраться. Поэтому меня и интересует как их вызвать напрямую и что они из себя представляют. Попробовать их изменить

    Также я не понял что такое
    Object.prototype.constructor.__proto__.apply
    и почему
    Function.prototype.apply === Object.prototype.constructor.__proto__.apply
    ??
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Спасибо большое.
    Литературу я читаю, и все, что мне посоветовали по ссылке уже практически дочитал, посмотрел попробовал. Многое узнал, но за последнее время много информации уже получил, весь новый год за чтением провел, уже хотелось бы как-то на практике все это закрепить, чтобы не забылось, но пробелы в знаниях не позволяют реализовать задуманное.
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Огромное спасибо за ответ.
    Например я создаю метод для Object.prototype
    Object.prototype.forin = function(){var result = ""; for(i in this) {result += i + ": "+this[i] +"\n"} return result;}
    var ob = {a:"a",b:"b"}
    console.log(ob.forin());
    

    Я могу увидеть этот метод если наберу в консоли Object.prototype
    Могу ли я как-то по другому получить доступ к его свойствам и методам? Например
    for(i in Object.prototype) document.write( i+ ": '" +  Object.prototype[i] + "', <br>");
    

    Не получается.
    Вопрос второй.
    Как я могу посмотреть те же свойства и методы (пусть даже через консоль) у других предопределенных объектов, например Array.prototype и Function.prototype? Включая и предопределенные методы
    Вопрос третий. Вышеуказанный метод, который я создал выводит не совсем то, что я хочу

    a: a
    b: b
    forin: function (){var result = ""; for(i in this) {result += i + ": "+this[i] +"\n"} return result;}

    а мне нужно получить только
    a: a
    b: b
    Как этого добиться?
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Извиняюсь, наврал. Просто функция была rec(){...} была также объявлена ниже. Хотя в таком случае не очень понятна работа интерпретатора, почему он выполняет функцию которая объявлена ниже ее выполнения? Особенно учитывая тот факт, что он не может определить дом-элемент, если он объявлен ниже кода который его вызывает

    те.е

    document.getElementById("div") 
    
    не найдет элемент с id=«div», если он выше
    <div id="div"></div>
    
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Так что же такое {}.prototype и [].prototype? И являются ли она Object.prototype и Array.prototype?
  • Что такое {}.prototype?

    @platedz Автор вопроса
    И еще, к теме не относится, но раз уж стал читать то возник вопрос что имело ввиду здесь
    http://shamansir.github.com/JavaScript-Garden/#function.general
    в самом низу Выражения с именованными фунциями
    var foo = function bar() {
        bar(); // работает
    }
    bar(); // получим ReferenceError
    


    При этом я получаю то, что ожидал

    var local_rec = function rec(start,stop) 
    		{ 
    			if(start < stop) { alert("start: "+start+ "\n stop: "+stop); rec(start+1,stop); }
    			
    		}
    rec(1,3);
    local_rec(30,32);
    
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Т.е. получается что admin — это только ссылка на root, и меняю я в данном случае всегда только root? Или как правильнее?
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Спасибо, по поводу синтаксической ошибки понятно, а вот по поводу присваивания не очень. Т.е., если я правильно понимаю, получается, что user = root, потому что user = {}.prototype, а {}.prototype = root. Не ясно только, где этот {}.prototype?

    А также не ясно почему здесь к примеру
    function root(){}
    root.prototype = { root :"свойство root" }
    var admin = function(){}
    admin = root;
    admin.prototype.admin = "свойство admin";
    var r = new root(); 
    var a = new admin();
    

    И r и a имеют свойства и root и admin
    Т.е. получается что они оба имею общие свойства
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Т.е. я так понял в моем коде {}.prototype роли как таковой не играет, т.е. я присвоил root сразу и user и {}.prototype, но учитывая, что {}.prototype синтаксическая ошибка, то вызвать я его не могу. С другой стороны не ясно, почему сама запись «user = {}.prototype = root», ошибки не вызвала?
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Спасибо за ответ, но хотелось бы знать, как и какие из этих записей можно использовать, как применять и соответственно для чего?
  • Что такое {}.prototype?

    @platedz Автор вопроса
    Если быть более точным, то записи могут быть разные, например как здесь
    developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice
    Выражение навроде, {}.prototype, я написал обобщенно, т.е. это может быть к примеру Function.prototype.call
    хотя вопрос возник после попытки создать прототип таким способом
    function root(){}
    root.prototype = { root :"свойство root" }
    function user() {}
    user = {}.prototype = root;
    var u = new user();
    

    При явном создании функций-конструкторов роль prototype мне кажется понятно, т.е. prototype является ссылкой на свойства родителя. А роль при использовании глобальных, и/или предопределенных объектов в мне не понятна

    Буду признателен за пояснение, или более развернутую информацию, где описывается использование подобных синтаксисов