数组中的javascript函数参数
我想做的是数组中的javascript函数参数,javascript,arrays,function,object,Javascript,Arrays,Function,Object,我想做的是 $.each($(".canvas"), function(n) { var canvas = $(this)[0].getContext("2d"); canvas.drawImage(options[n]); }); 其中,选项是一个参数数组,但无法确定数组的格式以使其工作 显然不是 ['img, 0, 0, 70, 17, 21, 16, 70, 17', 'img, 0, 0, 80, 12, 21, 16, 7
$.each($(".canvas"), function(n) {
var canvas = $(this)[0].getContext("2d");
canvas.drawImage(options[n]);
});
其中,选项是一个参数数组,但无法确定数组的格式以使其工作
显然不是
['img, 0, 0, 70, 17, 21, 16, 70, 17', 'img, 0, 0, 80, 12, 21, 16, 70, 17']
这两者都不是
[''+img+', 0, 0, 70, 17, 21, 16, 70, 17', ''+img+', 0, 0, 80, 12, 21, 16, 70, 17']
也不是这个
{0: [img, 0, 0, 70, 17, 21, 16, 70, 17]}
这也行不通
var options = [[img, 0, 0, 70, 17, 21, 16, 70, 17],
[img, 0, 16, 70, 17, 21, 16, 70, 17],
[img, 0, 32, 70, 17, 21, 16, 70, 17],
[img, 0, 48, 70, 17, 21, 16, 70, 17]];
img.onload = function() {
$.each($(".canvas"), function(n) {
var canvas = $(this)[0].getContext("2d");
canvas.drawImage(options[n].join(', '));
});
};
错误总是未捕获类型错误:类型错误或未捕获类型错误:非法调用使用
其中选项[n]
看起来像
[img, 0, 0, 70, 17, 21, 16, 70, 17]
完整示例:
var options = [[img, 0, 0, 70, 17, 21, 16, 70, 17],
[img, 0, 16, 70, 17, 21, 16, 70, 17],
[img, 0, 32, 70, 17, 21, 16, 70, 17],
[img, 0, 48, 70, 17, 21, 16, 70, 17]];
$(img).load(function()
{
$(".canvas").each(function(n)
{
var canvas = this.getContext('2d');
canvas.drawImage.apply(canvas, options[n]);
});
});
演示:
选项
必须具有正确的结构。和img
必须是一个DOM元素afaik@foxx:必须使用canvas.drawImage.apply(canvas,options[n])
(将canvas
作为第一个参数传递)。很好,以前确实尝试过apply(),但是用这个代替canvas,愚蠢的我,谢谢drawImage
接受多个参数,而不仅仅是一个字符串参数foo(a,b)
不同于foo('a,b')
。这只是因为字符串中有逗号并不能使其成为参数列表。
var options = [[img, 0, 0, 70, 17, 21, 16, 70, 17],
[img, 0, 16, 70, 17, 21, 16, 70, 17],
[img, 0, 32, 70, 17, 21, 16, 70, 17],
[img, 0, 48, 70, 17, 21, 16, 70, 17]];
$(img).load(function()
{
$(".canvas").each(function(n)
{
var canvas = this.getContext('2d');
canvas.drawImage.apply(canvas, options[n]);
});
});