Недавно я начал читать на OOP javascript, и одна вещь, о которой, по-видимому, пропустят авторы, - это когда объявлен объект A, и вдруг я вижу "A.prototype.constructor = A; Например,
var A = function(){}; // This is the constructor of "A"
A.prototype.constructor = A;
A.prototype.value = 1;
A.prototype.test = function() { alert(this.value); }
var a = new A(); // create an instance of A
alert(a.value); // => 1
Итак, я запускаю команду в firebug "var A = function() {};" а затем "A.Constructor", который показывает, что это функция. Я это понимаю. Я запускаю код "A.prototype.constructor = A;" и я думал, что это изменяет конструктор A от функции до A.
Свойство конструктора A было изменено правильно? Вместо этого, когда я запускаю "A.constructor", он дает мне функцию().
Какой смысл?
Я также вижу A.constructor.prototype.constructor.prototype.. что происходит?