Я хотел бы знать, как добавить пользовательскую функцию в объект массива с помощью прототипа.
Я назвал свою функцию get. get принимает индекс и возвращает элемент из массива с этим индексом. Это бессмысленно, я знаю, но я использую его в образовательных целях.
Так вот как это будет выглядеть при его использовании.
const a = ['1', '2', '3'];
a.get(2) -----> возвращает '3'
Это то, что я пробовал.
Array.prototype.get = index => {
return this[index];
};
let a = ['1','2' ,'3'];
console.info(a.get(1));
Это возвращает мне undefined.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используя функцию стрелки, вы не можете связать «это», поэтому в контексте прототипа это равно «окну».
Попробуй это:
Array.prototype.get = function(index){
return this[index];
};
Поэтому я попытался вернуть это. Он не возвращает объект окна, я не думаю, что это равно окну в функции стрелки. Вместо этого он вернул пустой объект
@Kevin.a В вашей функции this относится к контексту, в котором функция была объявлена, что я бы предположил являетсяWindow. я сделал демо.
Я бы настоятельно не рекомендовал вам расширять/переписывать собственные внутренние компоненты JavaScript. Есть много причин, по которым это опасная практика, и она определенно дорого вам обойдется в будущем, что и произошло несколько лет назад с одним из известных JS-фреймворков под названием Prototype:
In April 2010, blogger Juriy 'kangax' Zaytsev (of Prototype Core) described at length the problems that can follow from monkey patching new methods and properties into the objects defined by the W3C DOM.[5] These ideas echo thoughts published in March 2010 by Yahoo! developer Nicholas C. Zakas They have been summarized as follows:
- Cross browser issues: host objects are not subject to rules, non-compliant IE DOM behavior, etc.
- Chance of name collisions
- Performance overhead
Хотя я согласен с этим, на самом деле это не попытка ответить на вопрос. Если вы хотите воспрепятствовать тому, что запрашивает OP, это, конечно, нормально, однако, как отвечать, он должен, по крайней мере, предоставить альтернативу. В его нынешнем состоянии это было бы более уместно в качестве комментария (возможно, со ссылкой на статью вместо цитаты).
Ссылка на страницу Википедии есть... См. "Подробнее"!
Я знаю. Я говорю, что общим предупреждением должно быть комментарий вместо отвечать, поскольку вы не пытались ответить на заданный вопрос.
@VLAZ спасибо босс