2015-10-03 2 views
-1

я происхожу из AS3 в HTML5 JavaScript, так что это своего рода запутанным:Javascript - Vars, функции и объекты

1.

Я заметил, что внутри объектов, вам не нужно объявлять ВАР:

var player = { 
type:'player', 
x:50, 
} 

То же самое с ошибками отображения варсов (var type, var x), почему?

2. Почему бы мне не нужно объявить вар в функции:

createPlayer = function(){ 
a = 5; 
console.log(a); //works 
} 

3. Я предполагаю, что внутри функции, когда вы создаете новый вар, как это:

var a; //global var 
createPlayer = function(){ 
a = 3; 
} 

сначала выполняется поиск чтобы увидеть, существует ли глобальный var, называемый a, если он уже существует, он изменяет его значение, если он не создает его локально в функции. это верно?

  1. Как правило, когда мне нужно объявить var, а когда нет?

Благодарим вас за внимание.

+1

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var – epascarello

+0

Просто НИКОГДА не назначен variab le, не объявляя его сначала с помощью 'var', и тогда вы никогда не будете путаться о том, в какой области он определен. Если вы не объявляете переменную с помощью' var', она становится глобальной переменной, и это считается очень плохой практикой и, фактически, фактически будет ошибкой в ​​строгом режиме. – jfriend00

+1

Duplicate? [Какова функция ключевого слова var и когда его использовать (или опустить)?] (http://stackoverflow.com/q/1470488/218196) –

ответ

4
  1. Поскольку переменные и свойства - это разные вещи.

    Когда вы объявляете переменную, используйте var. Когда вы устанавливаете свойства в объектном литерале, не делайте этого.

  2. Вы не должны использовать var в нестандартном режиме, но это не рекомендуется, так как переменная станет глобальной. И не используя var бросает в строгом режиме.

  3. Когда вы задаете некоторое значение переменной, оно выполняется в цепочке областей видимости и изменяется там. Если переменная не найден нигде, это ошибка в строгом режиме или назначается как свойство глобального объекта в нестрогом режиме.

  4. Всегда где-то объявляйте свои переменные. И желательно, как можно более локально.

0

Если вы используете ключевое слово var внутри функции, то это считается как локальная переменная в противном случае она рассматривается как глобальной переменной прикрепленным к объекту окна, позвольте мне дать вам этот пример

function test(){ 
    var attr1 = "first attribute"; // this is a local variable 
    attr2 = "second attribute"; // this is a global variable, so you can acess it from outside that function, once you call it 
} 

// call the test function 
test(); 
console.log(attr1); // we get undefined because we used the keyword var 
console.log(attr2); // we get the valeu "second attribute" because it is considered as a global variable 

Я надеюсь, что это помогает

+1

Спасибо, это действительно помогло. – RunningFromShia

+0

Thumbs up, если это помогает :) – Ismail