首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >工作的JS代码在压缩时会收到错误消息:“语法错误:预期名称”

工作的JS代码在压缩时会收到错误消息:“语法错误:预期名称”
EN

Stack Overflow用户
提问于 2016-08-26 21:17:26
回答 2查看 1.9K关注 0票数 0

我正在创建一个类,使我能够通过选择器选择任何元素,并在其上快速应用JS方法。下面的代码有一个小问题(这是我代码的第一部分)。当我使用Koala或在jscompress.com上压缩它时,会得到一条错误消息:

SyntaxError:预期名称(行: 31,col: 31)

这一行对应于以$.prototype.method开头的包装方法。我不明白是怎么回事,因为我的代码在本地和现场网站上都很好地工作。

不知怎的,那是个错误。我尝试将变量name改为另一个变量,但它给了我同样的错误。

代码语言:javascript
复制
var $ = function(element) {
  if(!(this instanceof $)) {
    return new $(element);
  }

  // select all elements with this identifier
  this.elements = document.querySelectorAll(element);
  this.length = this.elements.length;
  if(this.length == 0) {
    return this;
  }

  // by default select the first element of querySelectorAll
  this.element = this.elements[0];
  this.css = this.element.style;

  // first method applied will be exectuted directly
  this.delayTime = 0;
}

// add a time to the delay timer
$.prototype.delay = function(delayTime) {
  // set a delay for the following method applied
  this.delayTime += delayTime;

  return this;
}

// wraps the method into a setTimeout
$.prototype.method = function(name, fn) {
  $.prototype[name] = function(...args) {
    var that = this;
    if(this.length != 0) {
      setTimeout(function() {
        // only one relevant param is passed
        fn(that, args[0]);
      }, this.delayTime);
      return this;
    }
    return 'element does not exist!';
  };
}

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2016-08-26 21:24:57

错误消息指向以下一行:

代码语言:javascript
复制
  $.prototype[name] = function(...args) {

因为您使用的精简器不理解ECMAScript 6的扩展语法。

票数 3
EN

Stack Overflow用户

发布于 2016-08-26 21:27:53

您所得到的错误指的是扩展运算符- ...args

扩展运算符是相对较新的,可能不支持您的小型机。

要修复错误,请从第31行的参数列表中删除...args。在第36行,使用arguments对象而不是- fn(that, arguments[0]);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39174738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档