JavaScript必知必會小結(《JQuery實戰》)

1、JavaScript對象的基本原理windows

(1)       Object對象,與其餘面向語言相比,這裏的Object幾乎沒有任何相同之處。Object的實例是屬性的集合,也就是說,獲得Object實例的主要目的就是用做其餘對象的已命名集合。數組

(2)       JavaScript對象是屬性的無序集合。閉包

(3)       屬性由名稱和值所構成。app

(4)       對象能夠利用對象字面量來聲明。Var make = 「Yame」;(可是沒有日期的字面量。因此須要用date構造器來表示時間,。Var time = new Date(2011,3,18)ide

(5)       頂層變量是Window的屬性。(在任何函數以外,如函數

Var foo = bar;windows.foo = bar; foo =bar;三者是等效的)。this

2、函數是一等公民spa

(1)       function與傳統面嚮對象語言有些區別。Function能夠指針

1.       被指派給變量orm

2.       被指派爲對象的屬性

3.       被傳入參數

4.       做爲函數結果返回

5.       用字面量來建立

所以,對待函數的方式與JavaScript語言裏的其餘對象相同。

 

這時候,咱們注意到一點頂層變量時Window的屬性,

這裏,咱們詳細說明一些:

Function doSomethingWonderful(){

       Alert(‘does something wonderful’);

}

這個不是建立名爲 doSomethingWoderful 的函數,而是建立window的屬性。

 

還有一點function hello(){alert(‘23’);}hello = functoin(){alert(‘23’);}window.hello = function(){alert(‘hi there’);}是同樣的。注意理解一點:「正如其餘對象類型的實例那樣,Function實例是值,所以能夠支配給變量,屬性或者參數,而且就像其餘那些對象類型,無實體的無名實例毫無用處,除非他們被指派給變量,屬性或者參數。只有經過變量,屬性或者參數,他們才能被引用。」(摘自《Jquery實戰》中文版P246

 

3、This究竟是什麼

JavaC++中,this的變量指向對象的當前實例。在JavaScript裏,略有不一樣,但必須當心。

在基於類的面嚮對象語言裏,this指針一般引用類的實例。在JavaScript中,函數是一等公民(不被聲明爲熱河東西的一部分),而this所引用的對象被稱爲函數上下文,由如何調用這個函數決定。

 

1)在函數做爲頂層函數而被直接調用時,函數的上下文爲window實例。

2)其中有call()和Apply()方法來調用函數,如

Var o1 = {handle:’o1’};

Function whoAmI()

{

       Return this.handle;

}

Alert(WhoAmI.call(o1));

Alert(WhoAmI.apply(o1));

其中Call函數制定對象做爲函數上下文,而其他參數做爲被調用函數的參數,apply方法和call類似,除了第二個參數要求是對象數組之外(這些對象將成爲被條用函數的實參)。

因此說:函數是對象的方法是不正確的。

 

4、閉包

暫略。

相關文章
相關標籤/搜索