numbers не наследует методы, которые есть в прототипе Collection
function Collection() {
return {
ar: []
}
}
var numbers = new Collection();
console.log(numbers.values());
Выводит "Uncaught TypeError: numbers.values is not a function" хотя есть такой метод - Collection.prototype.values Как сделать чтобы объект numbers мог использовать методы Collection.prototype ???
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
var numbers1 = new Map();
var numbers2 = new Set();
var numbers3 = new Array();
console.log(numbers1.values(), numbers2.values(), numbers3.values());
function Collection() {
this.ar = [1,2,3];
}
var numbers = new Collection();
console.log(numbers.ar.values().next());
Автор решения: Grundy
→ Ссылка
В случае, если конструктор возвращает не примитивный объект, вернется именно этот результат, а не создаваемый объект.
Таким образом в примере в вопросе в numbers лежит простой объект
{
ar: []
}
Который никак не связан с Collection и Collection.prototype