Ссылка, затем вызов прототипа функции

1

Я пытаюсь создать массив функций, чтобы я мог обучать алгоритму машинного обучения. Одна проблема, с которой я сталкиваюсь, например:

var fun = [String.prototype.split];
var str = 'test1&test2';
var result = str.fun[0]('&');

дает ошибку "невозможно прочитать свойство 0 неопределенного". это связано с тем, что у str нет массива литералов, который будет называться. Единственный способ исправить это - обернуть каждую функцию, такую как следующее, или есть другой способ:

function splitter (str1, str2) {
  return str1.split(str2);
}
var fun = [splitter];
var str = 'test&test';
var result = fun[0](str, '&');

Если есть еще один способ сделать это, я бы очень хотел знать, так как это сэкономит мне много времени, обертывая каждую функцию, как указано выше.

  • 3
    fun[0].call(str, '&')
  • 0
    @Pointy Коротко и сладко! Спасибо много!
Теги:
function
reference
undefined
prototype

1 ответ

2
Лучший ответ
var arr = [String.prototype.split];
var str = 'test&test';
arr[0].call(str, '&');

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call

Ещё вопросы

Сообщество Overcoder
Наверх
Меню