作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我很明白在JS中使用.apply()方法的基本原理。
function sayHi(x, y, z) {
console.log("I'm " + this.name + ", My choices are" + x + "," + y + "," + z);
}
var personA = {
name : "Albert"
};
var personB = {
name : "Bob"
};
var name = "Cindy";
var options = [" a", " b", " c"];
sayHi.apply(personA, options); // "I'm Albert, My choices are a, b, c"
sayHi.apply(personB, [" d", " e", " f"]); // "I'm Bob, My choices are d, e, f"
上面的代码片段是一个理想情况,您只想在sayHi()
函数中使用一定数量 的数组元素,然后继续sayHi()
函数所需的完全相同数量的数据(数组)。
但是,有时您需要利用给定数据集中的所有数组元素,其中数据的数量也可能不同。因此,sayHi()
函数不仅可以接受包含 3 个元素的数组,还可以接受包含 4、5、6 或更多元素的数组,不仅可以接受它,还可以利用传递的所有元素,像这样:
function sayHi(....) {
// Accept any array with varying amount of elements, and using it
for (...) {
// A loop that will go through each element in given array
}
}
var personA = {
name : "Albert"
};
var personB = {
name : "Bob"
};
var name = "Cindy";
var options3 = [" a", " b", " c"];
var options4 = [" a", " b", " c", " d"];
var options5 = [" a", " b", " c", " d", " e"];
// and so on
sayHi.apply(personA, options3);
sayHi.apply(personA, options4);
sayHi.apply(personA, options5);
到目前为止,我还没有找到解决这个问题的方法,所以我需要你的帮助来向我解释一下。
谢谢,
我是一名优秀的程序员,十分优秀!