如何将函数分配给javascript变量
我需要使用数组元素的函数访问它 例如,我有数组A[],现在我想创建数组B,这样如何将函数分配给javascript变量,javascript,Javascript,我需要使用数组元素的函数访问它 例如,我有数组A[],现在我想创建数组B,这样 A[i] === B[i].value() 我尝试了下面的代码,但得到的错误是B[I]。值不是函数 <script> function test(A) { var B = new Array(); for(var i=0; i<A.length; i++) { B[i] = function value() { return A[i]
A[i] === B[i].value()
我尝试了下面的代码,但得到的错误是B[I]。值不是函数
<script>
function test(A) {
var B = new Array();
for(var i=0; i<A.length; i++) {
B[i] = function value() {
return A[i];
};
}
for(var i=0; i< B.length; i++) {
console.log(B[i].value());
}
return B;
}
A=[1,2,3];
B = test(A);
</script>
功能测试(A){
var B=新数组();
对于(var i=0;i您需要指定一个对象:
B[i] = {
value: function () {
return A[i];
}
}
为了避免i
的范围出现任何问题,可以使用语句
let语句声明块作用域局部变量,可以选择将其初始化为值
功能测试(A){
var B=新数组();
for(设i=0;i
.as console wrapper{max height:100%!important;top:0;}
您可以使值匿名,例如B[i]=function(){/*Your code*/}
然后只需调用B[i]
而不是B[i].value()
A[i]==B[i].value()
-有错误(可选)函数表达式的名称仅在函数中可用,它不会创建指定给它的对象的命名属性。感谢Ele,还有其他方法添加此函数吗?闭包人!将第二个计数器更改为j
。六票-有趣!是的,如果我在第二个循环中使用'j',而不是I
,它不会工作,得到error@Igor六票,因为OP希望按如下方式调用函数B[index].value()
。当然,关于作用域问题,您是对的。请参阅更新的答案!@Ele OP也希望B[i]。value==B[j]。value
。OP不知道他们想要什么。