javascript参数背后的概念是什么?
让我试着解释一下我奇怪的困惑 我正在努力学习。我看到很多函数都有一些奇怪的参数(至少在我看来,它们看起来很奇怪)javascript参数背后的概念是什么?,javascript,jquery,d3.js,parameters,Javascript,Jquery,D3.js,Parameters,让我试着解释一下我奇怪的困惑 我正在努力学习。我看到很多函数都有一些奇怪的参数(至少在我看来,它们看起来很奇怪) d在这里做什么?为什么它没有用却被通过了 从哪里传递i(以及值) 同时,我也跟随并建立了一个。这也有一些奇怪的函数参数: .attr("cy", function(d) { return y(d.y) }) 从哪里传递d(以及值) d在这里做什么?为什么它没有用却被通过了 style函数将使用一组特定的参数调用回调函数。回调恰好不需要这些参数中的第一个,这一事实不会改
在这里做什么?为什么它没有用却被通过了d
- 从哪里传递
(以及值)i
.attr("cy", function(d) {
return y(d.y)
})
- 从哪里传递
(以及值)d
d
在这里做什么?为什么它没有用却被通过了
style
函数将使用一组特定的参数调用回调函数。回调恰好不需要这些参数中的第一个,这一事实不会改变style
调用它的方式。因此回调函数必须接受参数,但忽略它
从何处传递i
(以及值)
样式
功能。它调用回调函数,因此它决定回调函数接收的参数值
下面是一个函数接受和调用回调的示例,这可能有助于澄清问题。见评论:
//下面是接受回调的函数,就像
//d3的'style'接受回调。
函数doSomething(回调){
//使用两个参数调用回调函数,
//随机字母和随机数:
var letter=String.fromCharCode(65+Math.floor(26*Math.random());
var number=Math.floor(Math.random()*100);
回拨(字母、数字);
}
//现在我们调用这个函数,给它一个回调
//它利用了它的两个论点:
剂量测量(函数(l,n){
log(“第一次回调:字母为:”+l);
log(“第一次回调:编号:”+n);
});
//现在我们调用这个函数,给它一个回调
//仅使用第二个参数:
剂量测量(函数(l,n){
log(“第二次回调:编号:”+n);
});代码>
d
在这里做什么?为什么它没有用却被通过了
style
函数将使用一组特定的参数调用回调函数。回调恰好不需要这些参数中的第一个,这一事实不会改变style
调用它的方式。因此回调函数必须接受参数,但忽略它
从何处传递i
(以及值)
样式
功能。它调用回调函数,因此它决定回调函数接收的参数值
下面是一个函数接受和调用回调的示例,这可能有助于澄清问题。见评论:
//下面是接受回调的函数,就像
//d3的'style'接受回调。
函数doSomething(回调){
//使用两个参数调用回调函数,
//随机字母和随机数:
var letter=String.fromCharCode(65+Math.floor(26*Math.random());
var number=Math.floor(Math.random()*100);
回拨(字母、数字);
}
//现在我们调用这个函数,给它一个回调
//它利用了它的两个论点:
剂量测量(函数(l,n){
log(“第一次回调:字母为:”+l);
log(“第一次回调:编号:”+n);
});
//现在我们调用这个函数,给它一个回调
//仅使用第二个参数:
剂量测量(函数(l,n){
log(“第二次回调:编号:”+n);
});代码>这些是传递给作为引用提供的处理程序函数(也称为回调)的参数
下面是一个工作示例:
function main(a、b、callbackFn){
callbackFn(a*b);
}
主(2、3、功能(结果){
console.log(结果);/=6
});代码>这些是传递给作为引用提供的处理程序函数(也称为回调)的参数
下面是一个工作示例:
function main(a、b、callbackFn){
callbackFn(a*b);
}
主(2、3、功能(结果){
console.log(结果);/=6
});
在D3.js中,选择中的匿名函数按顺序传递三个值,传统上称为d
、i
和p
(下面是关于这些字母的更多信息):
第一个值,d
,是基准(数据为单数)
第二个是该数据的索引,i
第三个是D34.x中的节点和D33.x中的父数据索引
这就是它的工作原理,单击“运行代码片段”:
var testData=[43,2,57,42,17];
var测试=d3。选择全部(“.test”)
.data(testData)
.输入()
.附加(“p”);
test.attr(“foo”,函数(d,i){console.log(“数据:+JSON.stringify(d),”\nIndex:+JSON.stringify(i))
})
在D3.js中,选择中的匿名函数按顺序传递三个值,传统上称为d
、i
和p
(下面是关于这些字母的更多信息):
第一个值,d
,是基准(数据为单数)
第二个是该数据的索引,i
第三个是D34.x中的节点和D33.x中的父数据索引
这就是它的工作原理,单击“运行代码片段”:
var testData=[43,2,57,42,17];
var测试=d3。选择全部(“.test”)
.data(testData)
.输入()
.附加(“p”);
test.attr(“foo”,函数(d,i){console.log(“数据:+JSON.stringify(d),”\nIndex:+JSON.stringify(i))
})
d
是基准,i
是该基准的索引。由于i
是第二个参数,因此即使不使用它,也必须传递d
。在D3中,第一个参数始终为基准,第二个参数始终为基准的索引,第三个参数为
.attr("cy", function(d) {
return y(d.y)
})
.delay(function(d, i) {
return i * del(Math.random())
})