久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

JavaScript在全局對象中聲明變量,會成為一個全局對象的同名屬性而在函數中聲明變量則不會,為什么?

瀏覽:137日期:2023-05-12 08:54:20

問題描述

JavaScript中,在全局聲明全局變量后,會成為全局對象的一個同名屬性。但在函數中聲明局部變量后,卻不會成為函數(對象)的屬性,而是要使用“函數名.屬性名”才能聲明,請問是什么原因?

問題解答

回答1:

可以這樣理解:

在函數內部聲明的變量屬于函數執(zhí)行上下文對象,而不是函數對象全局環(huán)境下聲明的變量屬于全局執(zhí)行上下文對象,這個上下文對象就是全局環(huán)境對象

回答2:

哪有什么原因,規(guī)定就是這樣的。

回答3:

歷史遺留問題,建議使用嚴格模式消除迷惑。

’use strict’;var v = 2;console.log(window.v); // undefined回答4:

如果你是說這樣`function test(){

var a = 1; // 你說的a是test的屬性。 this.a = 1;// 這才是函數的屬性,因為在JS里,“萬物”皆對象(可能夸張了。) //如果,還不明白,請自覺翻閱,“神奇的this”,'作用域'等基礎JS章節(jié)

}`//更新,錯誤改正。題主好好看基礎。

回答5:

我認為這就是函數變量的作用域問題,js是很靈活的,還望一起學習^~^ ^~^

回答6:

JavaScript中,在全局聲明全局變量后,會成為全局對象的一個同名屬性。在函數中聲明局部變量后,它就變成局部對象,也就是函數的屬性,所以要先通過全局訪問函數再訪問函數中的局部變量。

回答7:

函數作用域啊

標簽: JavaScript
主站蜘蛛池模板: 西畴县| 甘南县| 刚察县| 虹口区| 札达县| 高台县| 尖扎县| 衡阳市| 萨嘎县| 昌黎县| 白玉县| 临澧县| 白山市| 南岸区| 西丰县| 砚山县| 唐海县| 牙克石市| 曲靖市| 文水县| 通州市| 西林县| 两当县| 千阳县| 苏尼特右旗| 张掖市| 隆子县| 甘泉县| 衡山县| 建瓯市| 文成县| 平阳县| 山东| 拉萨市| 广汉市| 灌阳县| 安吉县| 华宁县| 益阳市| 屏边| 开原市|