javascript应用程序不触发传递给它的数组中的每个索引

javascript应用程序不触发传递给它的数组中的每个索引,javascript,Javascript,为什么objA.myf3.apply(这个,a)only console.log数组中的第一个索引a 我是如何使用apply的?我希望对数组中的每个索引调用myf3:function(myarr) 我希望它能记录下来 1. 2. 3. 4. 谢谢你的帮助 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="http://ajax.googleapis.c

为什么
objA.myf3.apply(这个,a)
only console.log数组中的第一个索引
a

我是如何使用apply的?我希望对数组中的每个索引调用myf3:function(myarr)

我希望它能记录下来 1. 2. 3. 4.

谢谢你的帮助

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">

        var objA = {

            myf3:function(myarr){

                console.log(myarr); // why does only the first index of the array come through?

            }
        };


        var objB = {

            myfb2:function(){

                var a = [1,2,3,4,5,6,7,8,9];

                objA.myf3.apply(this,a);

            }
        };

        objB.myfb2();

    </script>
</head>

<body>

test apply?????

</body>

var objA={
myf3:功能(myarr){
console.log(myarr);//为什么只通过数组的第一个索引?
}
};
变量objB={
myfb2:函数(){
变量a=[1,2,3,4,5,6,7,8,9];
objA.myf3.apply(本,a);
}
};
objB.myfb2();
测试应用?????
将中断数组参数并将单个值作为参数传递。所以,在这种情况下,你会得到9个参数。您可以通过这样做来确认这一点

myf3:function(myarr) {
        console.log(arguments); // arguments will print all the parameters passed
     }
所以,你应该用这里

它将按原样传递参数

var objA = {
    myf3: function(myarr) {
        console.log(arguments);
    }
};
var objB = {
    myfb2: function() {
        var a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        objA.myf3.apply(this, a);
    }
};
objB.myfb2();
# { '0': 1,
#   '1': 2,
#   '2': 3,
#   '3': 4,
#   '4': 5,
#   '5': 6,
#   '6': 7,
#   '7': 8,
#   '8': 9 }
但是当我们使用
.call

var objA = {
    myf3: function(myarr) {
        console.log(myarr);
    }
};
var objB = {
    myfb2: function() {
        var a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        objA.myf3.call(this, a);
    }
};
objB.myfb2();
# [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
var objA = {
    myf3: function(myarr) {
        console.log(myarr);
    }
};
var objB = {
    myfb2: function() {
        var a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        objA.myf3.call(this, a);
    }
};
objB.myfb2();
# [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]