функция MoveTo() не корректно работает
Всем доброе утро! Не могу понять,хоть убей,почему в функцию не передаются параметры,вот код
function MyRectangle(x1,y1,x2,y2,x3,y3,x4,y4){
this.cordx1 = x1;
this.corxy1 = y1;
this.cordx2 = x2;
this.cordy2 = y2;
this.cordx3 = x3;
this.cordy3 = y3;
this.cordx4 = x4;
this.cordy4 = y4;
this.draw = function(){
ctx.beginPath();
ctx.lineWidth = "10";
ctx.strokeStyle = "blue";
ctx.moveTo(this.cordx1,this.cordy1);
ctx.lineTo(this.cordx2,this.cordy2);
ctx.stroke();
}
}
ctx.moveTo(this.cordx1,this.cordy1) не работает почему то, когда ей тут присваиваешь переменные,а если напрямую число присвоить то она работает. В то время как ctx.lineTo(this.cordx2,this.cordy2) работает и с переменными. Помогите понять пожалуйста в чем беда...(( |
А если так передавать, то работает:
this.draw = function(x,y){
ctx.beginPath();
ctx.lineWidth = "10";
ctx.strokeStyle = "blue";
ctx.moveTo(x,y);
ctx.lineTo(this.cordx2,this.cordy2);
ctx.stroke();
}
Как так????????Голову можно сломать!!! |
this в фунции .draw указывает на другой объект потому что это другая функция;
в функции function MyRectangle создай переменную через var и она будет доступна в функции .draw через замыкание каждый вызов MyRectangle() будет создавать замыкание в котором и будет хранится уникальное значение в переменной var; |
Цитата:
Подскажи пожалуйста,что значит замыкание,если не сложно черкани код То это не работает |
В данном случае this используется в той же функции просто передача параметров функции.
в первом примере создается новая функция и уже внутри нее ты обращается к this |
Цитата:
|
Один раз ты используешь this в одной функции, второй раз - в другой. Один раз this имеет одно значение, второй - совершенно другое. Что непонятно?
|
Цитата:
function MyRectangle(x1){
this.cordx1 = x1;
this.draw = function(){
alert(this.cordx1);
}
}
Rectangle = new MyRectangle(10)
Rectangle.draw();
выводится 10, т.е. значение this.cordx1 ???? Если так не получается передать параметр , то как можно?опишите пожалуйста,если вы знаете, я правда замучался!!!! |
ДанилаDeep,
я спасу тебя! Присмотрись внимательно к этому куску кода, падаван: this.corxy1 = y1; Что ты видишь в нём? |
Цитата:
|
| Часовой пояс GMT +3, время: 07:06. |