2016-11-06 3 views
1

У меня возникли проблемы с пониманием var vs this. Я понимаю, что «это» относится к объекту методов.Phaser framework, это vs var

Однако, в приведенном ниже примере, можно ли пояснить, почему мы используем «var box» вместо this.box ?. С другой стороны, мы используем this.spinner?

var MyGame = {}; 
MyGame.StateA = function (game) { 
this.spinner = null; this.text = null; 
}; 

MyGame.StateA.prototype = { 

init: function() { 
var box = this.make.graphics(0, 0); 
box.lineStyle(8, 0xFF0000, 0.8); 
box.beginFill(0xFF700B, 1); 
box.drawRect(-50, -50, 100, 100); 
box.endFill(); 

this.spinner = this.add.sprite(this.world.centerX, this.world.centerY,  box.generateTexture()); 

ответ

0
var box = this.make.graphics(0, 0); 

Вот определение переменной, с помощью слова "вар" в JavaScript мы определяем/объявлять переменные. Под «этим» мы используем области «функции», и это относится к объекту и его сфере действия. Если вы будете использовать

this.box = this.make.graphics(0, 0); 

Тогда probalby приложит его к глобальной переменной окна. Все это зависит от объема. https://developer.mozilla.org/en-US/docs/Glossary/Scope

Это разница между var и this. Используется в совершенно разных случаях.

1

Почему мы используем 'var box' вместо this.box?

В JavaScript объекты присваиваются переменной по ссылке.
После присвоения this.make.graphics до box, это просто легче манипулировать.

С точки зрения функциональности box.lineStyle(8, 0xFF0000, 0.8); и this.make.graphics.lineStyle(8, 0xFF0000, 0.8); будут делать то же самое.
Но box.lineStyle короче и читабельнее.

Смежные вопросы