Javascript 运行函数时出错
我必须删除画布中的一个形状 编写了以下代码-Javascript 运行函数时出错,javascript,shape,shapes,Javascript,Shape,Shapes,我必须删除画布中的一个形状 编写了以下代码- function deleteCircle(circle, propName) { for( i = 0; i < circle.length; i++) { circle[i].erase(); } } circle.prototype.erase=function() { delete this; } 函数deleteCircle(圆,propNam
function deleteCircle(circle, propName) {
for( i = 0; i < circle.length; i++) {
circle[i].erase();
}
}
circle.prototype.erase=function() {
delete this;
}
函数deleteCircle(圆,propName){
对于(i=0;i
当我以i=0运行此代码时,它将进入擦除功能。
但在第一次删除之后,它不会返回deletecircle。
这只是一个粗略的代码。。。我只是觉得删除这个之后。。。。即删除对象后,代码是否返回deletecircle?您的circle对象没有
擦除方法。在您的情况下,擦除
是独立的功能,不会像这样工作。正如其他用户所说,在循环过程中修改数组的大小是个坏主意。
尝试:
编辑:抱歉,没有注意到您更改了代码。更新:
function circle(){};
circle.prototype.erase = function(){
delete this;
}
var circles = [new circle, new circle, new circle];
function deleteCircle(circle, propName) {
while(circle.length!==0){
circle.pop().erase();
}
}
function circle(){}; //or however you define your class
circle.prototype.erase = function(){ //extend the class
delete this;
}
var circles = [new circle, new circle, new circle]; //your array
function deleteCircle(circle, propName) {
while(circle.length!==0){
circle.pop().erase();
}
}
alert(circles.length);
deleteCircle(circles,null);
alert(circles.length);
我假设在erase()
处发生了一个错误,这会阻止循环继续。你检查错误日志了吗?你正在修改循环中数组的长度-这是个坏主意。嘿,没有错误。只有一个圆圈被删除。我想让for循环一直工作到所有圆都被删除为止。但是用这个代码。只有1个正在删除我在我的圆圈对象中设置了擦除功能。我已经编辑了代码。请查收
function circle(){};
circle.prototype.erase = function(){
delete this;
}
var circles = [new circle, new circle, new circle];
function deleteCircle(circle, propName) {
while(circle.length!==0){
circle.pop().erase();
}
}
function circle(){}; //or however you define your class
circle.prototype.erase = function(){ //extend the class
delete this;
}
var circles = [new circle, new circle, new circle]; //your array
function deleteCircle(circle, propName) {
while(circle.length!==0){
circle.pop().erase();
}
}
alert(circles.length);
deleteCircle(circles,null);
alert(circles.length);