Array.prototype.assign = function(value,a,b,c,d){
//value - значение, на которое нужно изменить элементы
//a - начальный элемент по оси x, c - конечный элемент по оси x
//b - начальный элемент по оси y, d - конченый элемент по оси y
try{
var self = this[b];
var func = arguments.callee;
var before = self.slice(0,a);
var after = self.slice(c,self.length-1);
var arr = new Array(c-a+1);
arr = arr.join(value+"[|]").split("[|]");
arr[arr.length-1] = value;
this[b] = before.concat(arr).concat(after);
if(b===d) return this;
else{
b++;
return func.apply(this,arguments);
}
}catch(e){
if(e){
throw{
array: this,
message: e.message
};
}
}
}