JavaScript 对象作为参数
JavaScript object as parameter
我试图制作一个函数,在 HTML 文档中写入一些 div。一切正常,但我想尝试更改函数声明:
function writeDiv(divDOMelement, numberOfExcercises, numberOfTasksInEx);
像这样
function writeDiv(divDOMelement, {numberOfExcercises:N, numberOfTasksInEx:[v]})
需要说明的是,第一个声明工作得很好,但是当我尝试实现第二个声明并更改函数调用时,我收到了一个错误。
完整代码如下:
let open = false;
let currentlyOpen;
function writeDiv(divDOMelement, {numberOfExcercises:N, numberOfTasksInEx:[v]}) {
for (let i = 0; i < numberOfExcercises.N; i++) {
// ... didnt include the code that prints the divs on the site just to make it easier to read.
for (let j = 0; j < numberOfTasksInEx.v[i]; j++) {
// ... same as the first loop.
}
}
}
$(document).ready(function () {
writeDiv("#mainDiv", {numberOfExcercises:3, numberOfTasksInEx:[5,2,3]});
});
澄清一下,这个 numberOfTasksInEx 应该是一个数组,数组的第一个元素告诉我第一个练习有那么多任务,第二个元素告诉我第二个练习有那么多任务,依此类推上。
我遇到的错误:
jQuery.Deferred exception: numberOfExcercises is not defined
Uncaught ReferenceError: numberOfExcercises is not defined
您的声明语法不正确。您只需要:
function writeDiv(divDOMelement, {numberOfExcercises, numberOfTasksInEx})
然后在您的函数中,您将 numberOfExercises
作为总计数,numberOfTasksInEx
作为每次练习任务的数组。
声明语法在称为“分解”的过程中从作为第二个参数传递给函数的单个对象中提取这些属性。您版本中的 :
做了一些事情,但不是您的代码所期望的:它允许重命名源对象(实际参数)中的 属性 名称。这在这里并不是真正必要的,但是例如 numberOfExercises:N
意味着在您的函数中您将简单地引用 N
,而不是 numberOfExercises.N
.
我试图制作一个函数,在 HTML 文档中写入一些 div。一切正常,但我想尝试更改函数声明:
function writeDiv(divDOMelement, numberOfExcercises, numberOfTasksInEx);
像这样
function writeDiv(divDOMelement, {numberOfExcercises:N, numberOfTasksInEx:[v]})
需要说明的是,第一个声明工作得很好,但是当我尝试实现第二个声明并更改函数调用时,我收到了一个错误。
完整代码如下:
let open = false;
let currentlyOpen;
function writeDiv(divDOMelement, {numberOfExcercises:N, numberOfTasksInEx:[v]}) {
for (let i = 0; i < numberOfExcercises.N; i++) {
// ... didnt include the code that prints the divs on the site just to make it easier to read.
for (let j = 0; j < numberOfTasksInEx.v[i]; j++) {
// ... same as the first loop.
}
}
}
$(document).ready(function () {
writeDiv("#mainDiv", {numberOfExcercises:3, numberOfTasksInEx:[5,2,3]});
});
澄清一下,这个 numberOfTasksInEx 应该是一个数组,数组的第一个元素告诉我第一个练习有那么多任务,第二个元素告诉我第二个练习有那么多任务,依此类推上。
我遇到的错误:
jQuery.Deferred exception: numberOfExcercises is not defined
Uncaught ReferenceError: numberOfExcercises is not defined
您的声明语法不正确。您只需要:
function writeDiv(divDOMelement, {numberOfExcercises, numberOfTasksInEx})
然后在您的函数中,您将 numberOfExercises
作为总计数,numberOfTasksInEx
作为每次练习任务的数组。
声明语法在称为“分解”的过程中从作为第二个参数传递给函数的单个对象中提取这些属性。您版本中的 :
做了一些事情,但不是您的代码所期望的:它允许重命名源对象(实际参数)中的 属性 名称。这在这里并不是真正必要的,但是例如 numberOfExercises:N
意味着在您的函数中您将简单地引用 N
,而不是 numberOfExercises.N
.