suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wenn JavaScript eine Variable im globalen Objekt deklariert, wird sie zu einer Eigenschaft mit demselben Namen wie das globale Objekt. Wenn sie jedoch in einer Funktion deklariert wird, wird dies nicht der Fall.

In JavaScript wird eine globale Variable, nachdem sie global deklariert wurde, zu einer Eigenschaft des globalen Objekts mit demselben Namen. Nachdem eine lokale Variable in einer Funktion deklariert wurde, wird sie jedoch nicht zu einem Attribut der Funktion (Objekt), sondern muss mit „Funktionsname.Attributname“ deklariert werden.

仅有的幸福仅有的幸福2750 Tage vor943

Antworte allen(7)Ich werde antworten

  • PHP中文网

    PHP中文网2017-06-26 11:00:35

    可以这样理解:

    在函数内部声明的变量属于函数执行上下文对象,而不是函数对象
    全局环境下声明的变量属于全局执行上下文对象,这个上下文对象就是全局环境对象

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-26 11:00:35

    哪有什么原因,规定就是这样的。

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-06-26 11:00:35

    历史遗留问题,建议使用严格模式消除迷惑。

    'use strict';
    
    var v = 2;
    console.log(window.v);   // undefined

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-06-26 11:00:35

    如果你是说这样
    `function test(){

    var a = 1;     // 你说的a是test的属性。
        this.a = 1;// 这才是函数的属性,因为在JS里,“万物”皆对象(可能夸张了。)
                  //如果,还不明白,请自觉翻阅,“神奇的this”,"作用域"等基础JS章节

    }`
    //更新,错误改正。
    题主好好看基础。

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-26 11:00:35

    我认为这就是函数变量的作用域问题,js是很灵活的,还望一起学习^~^ ^~^

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-26 11:00:35

    JavaScript中,在全局声明全局变量后,会成为全局对象的一个同名属性。在函数中声明局部变量后,它就变成局部对象,也就是函数的属性,所以要先通过全局访问函数再访问函数中的局部变量。

    Antwort
    0
  • typecho

    typecho2017-06-26 11:00:35

    函数作用域啊

    Antwort
    0
  • StornierenAntwort