简体   繁体   中英

How to fix “Undefined is not an object” error in Javascript

I am trying to use scripts in illustrator. Some of these require being able to import other scripts so I found the below code. When I try to run it I receive

Error 21: Undefined is not an object.
Line 6 -> var Libraries = (function(libpath){"

I have looked through other answers and it seems the issue is that "Libraries" (?) is undefined, and that I ought to define it first. Sadly I don't know what it ought to be defined as. Or I don't understand the problem in general.

I expected it to import helloworld.jsx and hence be able to run the helloWorld function. It threw up the error described above.

//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();

自从我做完这些东西以来,已经有很多月了……库不是一个需要libPath的函数,所以您需要调用

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM