我从这篇文章Object
中了解到,在 JavaScript 中修改原型是一种反模式。但是,我很好奇它是否被广泛认为是修改其他“内置”原型的反模式。
例如:假设我们想添加一个setPixel(x,y,color)
函数到CanvasRenderingContext2D
- 以抽象出获取上下文图像数据的职责,将像素设置为某种颜色,然后将图像数据放回原处。
CanvasRenderingContext2D.prototype.setPixel = function(x, y, color){
var imgdata = this.createImageData(1,1);
imgdata.data[0] = color.r;
imgdata.data[1] = color.g;
imgdata.data[2] = color.b;
imgdata.data[3] = color.a;
this.putImageData(imgdata,x,y);
};
我没有测试过这段代码,但你明白了。这样的事情是否违反“最佳实践”?