首頁  >  文章  >  web前端  >  JavaScript快速充電

JavaScript快速充電

高洛峰
高洛峰原創
2016-11-25 14:03:001236瀏覽

Netscape發明的,思想來自函數語言Schema和Self,有點接近Python.

特徵:弱類型,動態解析,函數是對象,對象基於Prototype

前三個特徵容易理解,最後一個要重點解釋。

 

最基本的最佳實踐:在大型程式中使用Fuction和物件!不要流水帳式程式設計。

 

The easiest way to create an object is:

var myObject = new Object();

 

JavaScript物件本質上是關聯數組。

 

小提示:注意將函數賦給變數時使用functionName()與functionName的區別,前者是將函數的結果付給變量,而後者將函數引用付給變數。

 

可以使用JSON建立和修改JavaScript對象,JavaScript也可以修改JSON建立的對象。

 

構造函數/類別/prototype屬性

JavaScript也有物件和類別的概念,但是沒有內建繼承的概念。事實上,每個JavaScript物件都是相同基底類別的實例。這個基底類別有能力在運行時將成員欄位和函數與自己綁在一起。

 

安全的替代品:prototype屬性

prototype是JavaScript物件的屬性,在OO語言中沒有對等物。函數和屬性可以與建構函數的prototype關聯起來。然後prototype和new關鍵字協同工作,當使用new呼叫函數時,函數prototype的所有屬性和方法都會附加到結果物件上。

Java程式碼 

function MyObject(name, size){  

this.name = name;  

this.size = size 漿

. (){   

alert ("size of "+this.name+" is "+this.size);  

}  

 

var myObj = new MyObject("tiddles", "7.5 meters");

 

function MyObject(name, size){

this.name = name;

this.size = size;

}

)> of "+this.name+" is "+this.size);

}

 

var myObj = new MyObject("tiddles", "7.5 meters");

myObj.Size(Ob

注意,在宣告建構函式之後,我們才能引用prototype,物件之恩那個繼承那些在呼叫建構函式之前就已經附加到prototype上的東西。 prototype可以在兩次呼叫建構函數之間進行修改,並且可以附加任何東西,不僅僅是函數,到prototype上。

 

使用prototype來為JavaScript物件定義類似類別的行為,是一條安全且可靠的路徑。

 

擴充內建類別

在網路瀏覽器中,有些核心類別是可以透過prototype機制進行擴充的。

Java程式碼 

Array.prototype.indexOf = function(obj) {  

var result = -1;  

for (var i=00 i

result=i;  

break;  

}  

}  

} var result = -1;

for (var i=0; i

if (this[i]==obj){

result=i;

break;

}

}

break;

}

}

break;

 

prototype的繼承

JavaScript沒有本地實現,不過有一些靈巧的變通方法。

 

JavaScript物件的反射

用於發現物件的類型

 

事件處理和函數上下文

在程式設計方式聲明Dom元素的事件處理函數時,即使沒有為函數分配參數,當點擊Dom元素時,Event物件作為了函數呼叫的參數,元素本身作為上下文物件。

 

如果希望事件處理函數引用它附加到的模型對象,有兩種方法:

1.使用名稱引用模型

2.向Dom節點附加模型

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn