如何将我编写的函数应用于此图像?(JavaScript)

如何将我编写的函数应用于此图像?(JavaScript),javascript,function,Javascript,Function,我编写的函数旨在将给定图像中的每个像素变为黑色: function setBlack(像素){ 像素。设置为红色(0) 像素.setBlue(0) 像素。设置为绿色(0) 返回像素; } 我定义了一个图像: var img=new SimpleImage(“drewRobertOrig.png”); 然后尝试调用我的函数: for(img.values()的变量像素){ img.setBlack(); } 得到了这个错误:setBlack.pixel不是一个函数。我是JavaScript新

我编写的函数旨在将给定图像中的每个像素变为黑色:

function setBlack(像素){
像素。设置为红色(0)
像素.setBlue(0)
像素。设置为绿色(0)
返回像素;
}
我定义了一个图像:

var img=new SimpleImage(“drewRobertOrig.png”);
然后尝试调用我的函数:

for(img.values()的变量像素){
img.setBlack();
}

得到了这个错误:setBlack.pixel不是一个函数。我是JavaScript新手,所以语法对我来说很难。

看起来您只需要将像素参数传递给setBlack函数。现在调用它时没有参数。它需要一个像素参数。另外,当它看起来是一个单独的函数时,您将其作为
img
的成员方法调用

更改此项:

for (var pixel of img.values()) {
    img.setBlack();
}
为此:

for (var pixel of img.values()) {
    setBlack(pixel);
}
看看这是否有效。不确定您正在为此使用哪个库。您正在使用画布对象吗


您是否正在使用?

假设您的
可以访问
循环代码的函数,您需要将
setBlack()
作为独立函数使用,而不是像调用
SimpleImage
原型函数那样调用它


在JavaScript中,当调用如下函数时:

[object].foo();
你在调用所谓的。这意味着,与之前声明的独立函数(如
setBlack()
的声明)不同,代码将查找由调用它的对象的原型定义的方法

在本例中,通过调用
img.setBlack()
,您的代码基本上将查找由
SimpleImage
定义的名为
setBlack()
的函数的定义,该函数不存在(因此抛出错误)

您可能希望在这里调用
setBlack(pixel)
,它将调用您使用
for
循环提供的参数
pixel
定义的函数

function setBlack(像素){
像素。设置为红色(0)
像素.setBlue(0)
像素。设置为绿色(0)
返回像素;
}
var img=新的SimpleImage(“drewRobertOrig.png”);
for(img.values()的变量像素){
像素级;
}

要按定义使用函数,它应该是
setBlack(),带有一些参数。我知道这不是很有帮助,但这就是您使用该函数的方式。如果您想为该图像类创建一个“函数”,则必须覆盖其原型…它应该类似于
SimpleImage.prototype.setBlack(pixel)=函数(pixel){…返回…}
,前提是pixel是在SimpleImage类中定义的。但是二传手通常不会返回任何东西。。。所以你不应该包含return语句。我正在网上寻找SimpleImage类,但我没有看到它。。。我只想使用Image类。你能链接你正在使用的库吗?我想查阅一些文件。这对我很有用,谢谢!我用的是DukeLearn的程序