我有以下代码:
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
。为什么会这样?
答案 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在您共享的代码中不存在-它不是内置的args
。 arguments
是您要查找的数组; 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,它使用参数