js基礎知識 閉包,事件處理,原型

2022-08-27 06:00:13 字數 1298 閱讀 6717

閉包:其實就是js**在執行的時候會建立變數物件的乙個作用域鏈,識別符號解析的時候會沿著作用域鏈一級一級的網上搜尋,最後到達全域性變數停止。所以某個函式可以訪問外層的區域性變數和全域性變數,但是訪問不了裡層的變數

with和catch語句都會在作用域的前端新增乙個變數物件

function

buildurl()

return

url }

如果乙個函式物件要訪問內層函式中的變數的話,就用return就行了

事件處理:事件先捕獲然後再冒泡,從document開始在document結束,addeventlistener中第三個引數為true時,在捕獲階段處理事件,為false是在冒泡階段處理事件,預設為false

ie有自己的attachevent方法,與addeventlistener不同的是,事件名中多了『on』,而且沒有第三個引數,只支援冒泡

原型:

function

person(name)

var person1 = new person('mick');

每乙個建立的函式都有原型屬性,它是乙個指標,指向函式的原型物件。

每個函式的例項都有乙個建構函式的指標,指向原函式物件

console.log(person1.constructor == person); //true

原型物件其實也相當於乙個例項,所以他的建構函式也指向原函式物件

console.log(person1.constructor==person.prototype.constructor)//

true

每個物件都有 __proto__ 屬性,但只有函式物件才有 prototype 屬性

繼承就是讓sub的原型指向另乙個函式物件(super的例項),從而而這個原型物件的constructor屬性指向的是函式物件super

原型物件本來就是可以讓例項物件共享其中的方法,所以,這個時候sub就可以訪問到super例項和super的原型物件中的方法了

function

super()

}function

sub()

}sub.prototype = new

super()

var sub1 = new

sub() ;

console.log(sub1.__proto__.constructor==super)//true

console.log(sub1.__proto__.__proto__==super.prototype)//true

js 閉包 原型

引用 在乙個專案中大量使用js,工程專案與 開發有一些不一樣,在我接觸的工程專案中普遍使用js 不夠多,大部分客戶端可做事,交給了服務端,而且在使用js時不夠規範,很容易造成 難以閱讀 記憶體洩漏問題,不注意js 輸寫方式。而在 開發中 尤其一些大 js輸出的非常漂亮 完美無論使用jquery,還是...

js事件 基礎知識

常用的事件 onclick 滑鼠單擊 ondblclick 滑鼠雙擊 onkeyup 按下並釋放鍵盤上的乙個鍵時觸發 onchange 文字內容或下拉列表中的選項發生改變 onfocus 獲得焦點,表示文字框等獲得滑鼠游標 onblur 失去焦點,表示文字框等失去滑鼠游標 onmouseover 滑...

js原理 閉包(理解閉包要先從基礎知識開始)

序 很多人在面試被問到閉包時,都是回答閉包就是函式包著函式,閉包裡的變數不會被銷毀而云云等等。並且有很常多初學者都困惑為什麼經常被問閉包?好像工作中也不常用到啊。其實問閉包就是要考你的基礎扎不紮實,閉包也經常會用到,只是現在很多框架都封裝好了,不需要我們直接去建閉包函式了。執行環境 executio...