#arrays #function #object #constructor #new-operator
Вопрос:
Я изо всех сил пытаюсь понять эту концепцию. Если объект массива является новым экземпляром объекта объекта, то как он может также быть конструктором. Если мы создадим собственные конструкторы, у новых экземпляров не будет собственных конструкторов, они будут просто новыми экземплярами созданного вами конструктора
var Person = function (name, age) {
this.name = name;
this.age = age;
}
var kevin = new Person (“kevin”, 35)
Теперь я, конечно, не смогу использовать переменную kevin в качестве функции конструктора. Это просто новый экземпляр конструктора личности.
Итак, если массив является новым экземпляром объекта Object, то как он также может быть функцией-конструктором для всех его создаваемых экземпляров ! Спасибо
Ответ №1:
var Person = function () {
}
Person.prototype.saySomething= function () {
alert("say something");
}
new Person ( Dave = function () { // this is a new instance of a Person object passing in Dave
})
Dave.prototype.sayNothing = function () {
alert(" ");
}
var sportsman = new Dave(); // this is a new instance ofthe Dave object
sportsman.sayNothing(); // this works
sportsman.saySomething();// this doesnt , however
sportsman.hasOwnProperty("blue") // returns false so this works
Вот что я имею в виду, вот как это должно работать в моей голове у спортсмена,говорит, что что-то не работает, заявляет, что это не функция, но я думал, что он распознает прототип функции человека и заберет его оттуда, используя цепочку прототипов. Тем не менее, он по-прежнему выбирает методы из прототипа объекта объекта, почему он не распознает прототип человека, если Дейв-новый экземпляр человека, а спортсмен-новый экземпляр Дейва, спасибо