Javascript:为什么这个函数说“ ... args”不存在?

时间:2020-05-02 01:16:27

标签: javascript

我有以下代码:

let a = (b) => {
  console.log(...args)
  return function(...args) {

  }
}

let c = (d, e) => {

}

a(c)

当我注释console.log时,一切都很好。我假设...args是函数的参数数组。但是,当我运行console.log时,它会显示ReferenceError: args is not defined。为什么会这样?

4 个答案:

答案 0 :(得分:2)

args应该是这样的。 args未定义

let a = (...args) => {
  console.log(args)
  return function(...args) {

  }
}

let c = (d, e) => {

}

a(c)

答案 1 :(得分:1)

几件事-

Console.log试图评估import random import tkinter as tk WIDTH, HEIGHT = 600, 600 def draw(dummy_e): n = int(entry.get()) dx, dy = 2, 2 for _ in range(n): x, y = random.randrange(WIDTH), random.randrange(WIDTH) canvas.create_oval(x+dx, y+dy, x-dx, y-dy) if __name__ == '__main__': root = tk.Tk() canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT, bg='cyan') canvas.pack() entry = tk.Entry(root) entry.pack() entry.bind('<Return>', draw) root.mainloop() ,但是当您返回一个函数时,您尚未评估赋予该函数的参数。

Args在您共享的代码中不存在-它不是内置的argsarguments是您要查找的数组; args通常在函数定义中用作速记,因为已经使用了单词arguments一词。

答案 2 :(得分:1)

使用箭头功能,您需要将参数更改为... args

let a = (...args) => {
  console.log(...args)
  return function(...args) {

  }
}

let c = (d, e) => {

}

a(c)

let a = (...args) => {
  console.log(...args)
  return function(...args) {

  }
}

let c = (d, e) => {

}

a(c)

答案 3 :(得分:1)

JavaScript没有局部变量args,它使用参数