У меня возникли проблемы с пониманием того, как использовать «это» в следующем коде. Я создаю круги с Raphael.js и JQuery.У меня возникли проблемы с пониманием использования «этого» в JavaScript
$(function(){
function circleAttributes(x, y, r){
this.x = x;
this.y = y;
this.r = r;
this.strokeweight = 3;
console.log(x,y,r, this.x);
}
var paper = Raphael(0, 0, 1200, 600);
var circles = [];
for(var i = 0; i < 20; i++){
circles.push(new circleAttributes(Math.floor(Math.random() * 500), Math.floor(Math.random() * 500), 5));
paper.circle(circles[i].x, circles[i].y, circles[i].r);
console.log(circles);
}
});
Все работает отлично таким образом, но если я изменить this.x
к circleAttributes.x
я не могу получить доступ к й в строке paper.circle(circles[i].x, circles[i].y, circles[i].r);
.
Я пишу circles[i].circleAttributes.x
? Это тоже не работает, но я чувствую, что он должен быть в состоянии! Это должно быть так же, как сказать person.name
или?
Я понимаю, что «это» используется как местоимение «он». Майк убегает, потому что ОН боится.
Редактировать: Я до сих пор не понимаю, пожалуйста, объясните это простым языком!
просто 'this' относится к текущей области функций/объектов – azad
Но тогда this.x и circleAttributes.x - то же самое верно? – AustriaNotAustralia
@AustriaNotAustralia См. 'CircleAttributes.x' будет глобальным, тогда как' this' будет вашим локальным/текущим объектом. Таким образом, в стандартах es5 'this' используется для установки свойств для локальных объектов. рассмотрим цикл, который создает несколько объектов, и все эти объекты будут иметь разные свойства в терминах ширины, высоты, глубины и т. д. – Jai