Как исправить ошибку «Не определено не является объектом» в Javascript - PullRequest
2 голосов
/ 10 апреля 2019

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

Ошибка 21: Undefined не является объектом.
Строка 6 -> var Libraries = (function (libpath) {"

Я просмотрел другие ответы, и кажется, что проблема в том, что «Библиотеки» (?) Не определены, и что я должен сначала определить это. К сожалению, я не знаю, как это должно быть определено. Или я не знаюне понимаю проблему в целом.

Я ожидал, что он импортирует helloworld.jsx и, следовательно, сможет запустить функцию helloWorld. Она вызвала ошибку, описанную выше.

//Library importing function from https://gist.github.com/jasonrhodes/5286526

// indexOf polyfill from https://gist.github.com/atk/1034425
[].indexOf||(Array.prototype.indexOf=function(a,b,c){for(c=this.length,b=(c+~~b)%c;b<c&&(!(b in this)||this[b]!==a);b++);return b^c?b:-1;});

var Libraries = (function(libPath) {
  return {
    include: function(path) {
      if (!path.match(/\.jsx$/i)) {
        path = path + ".jsx";
      }
      return $.evalFile(libPath + path);
    }
  };
})($.fileName.split("/").splice(0,$.fileName.split("/").indexOf("adobe_scripts") + 1).join("/") + "/lib/");

Libraries.include("HelloWorld.jsx");
helloWorld();

1 Ответ

0 голосов
/ 10 апреля 2019

Много лун с тех пор, как я это сделал ... Разве библиотеки не являются функцией, которая принимает libPath, поэтому вам нужно будет вызвать

Libraries('c:\whereever').include('HellowWorld.jsx');
...