Javascript作用域問題的建構函式的變數

2021-09-08 17:33:00 字數 614 閱讀 6265

建構函式new對於使用。代表建立物件。此外,它可以被用作普通的函式呼叫,因為它也是乙個功能。

function person(name) 

person(12);

alert(window.name);//12

能夠看到當建構函式被當成普通函式呼叫的時候。this代表的是全域性的window物件。

非常顯然把建構函式當成普通函式呼叫,不是好的做法。 也沒有什麼道理要這麼做。

實際中應該杜絕這樣奇怪的使用方法,以免產生奇怪的問題。

function person(name,***) 

var per = new person("aty","boy");

alert(per.name);// aty

alert(per.name1);//undefined

alert(per.name2);//undefined

alert(window.name2);//boy

建構函式中定義變數使用this是成員變數;使用var是區域性變數;不加keyword是全域性變數。會加入到window物件中。這樣解釋了為什使用什麼樣的構造thiskeyword。

JavaScript 作用域,作用域鏈詳解

前言 es5缺少區域性作用域的概念,而es6已經補充了es6的概念。一 作用域 把作用域比作乙個個封閉的方塊,在相同乙個封閉方塊中的物體可以相互接觸,但是無法和別的封閉方塊中的物體直接接觸。二 全域性作用域 這個就是簡單的全域性作用域。全域性作用域相當於乙個最大的封閉空間,他裡面還有乙個個小的封閉空...

Javascript變數作用域

1.變數作用域是什麼鬼?2.全域性變數 全域性變數擁有全域性作用域 作用範圍在整個頁面中 在 的任何地方都有定義。擁有全域性作用域的情形 1 宣告在函式外部的變數。eg var a 全域性變數 function b 2 宣告變數時,缺少關鍵字var。eg function b 函式引數的變數 fun...

javascript作用域鏈

首先我們來看一段 然後通過分析這段 來說明作用域鏈的這個問題,如下 console.log total var total 0 function fn num1,num2 fn 100,200 console.log total 複製 這段 輸出的結果為 undefined undefined 30...