* 一個函數(shù)就是一個類(函數(shù)和類是同一個概念,可以將此函數(shù)理解為該類的構(gòu)造函數(shù)),js中的類是一些屬性(方法)的集合。 對象引用屬性(方法)的方式是: 對象名.屬性(方法)名; 或 對象名["屬性(方法)名"];
可以為對象 添加,修改,刪除( = undefined) 屬性和方法。 修改和添加方法 user.eat = function(){ ...... } * 用new來創(chuàng)建對象,如 var obj = new class1(); 會返回一個對象。 也可以用 { } 創(chuàng)建對象,因為是屬性(方法)的集合。屬性(方法)和其定義之間用 :間隔
prototype: 當(dāng)每創(chuàng)建一個類的實例的時候,都要執(zhí)行一次構(gòu)造函數(shù),函數(shù)中的屬性和方法總會被重復(fù)創(chuàng)建,prototype可以很好的解決。當(dāng)new一個function時,該對象的成員將自動的賦給所創(chuàng)建對象。prototype發(fā)生在函數(shù)體(構(gòu)造器)執(zhí)行之前。prototype的定義必須在new實例化對象之前,否則不會起作用。 原型對象,表示了該函數(shù)的原型,也就表示了這個類的所有成員的集合。 在通過new創(chuàng)建一個類的實例對象的時候,prototype對象的成員都成為實例化對象的成員。 1、該對象只能被類所引用,只有函數(shù)對象才可引用; 2、在new實例化后,其成員被實例化,實例對象方可調(diào)用。 同時,函數(shù)是一個對象,函數(shù)對象若直接聲明成員,不用被實例化即可調(diào)用。 可以通過prototype來修改某個類的定義即屬性和方法。例如:Object.prototype.eat = function(){ ... },任何一個對象都是Object的實例,所以可以修改Object這個類,來讓所有的對象具有一些通用的屬性和方法。 * 函數(shù): function func(){ 有名函數(shù) -- 可以在調(diào)用之后再聲明 ...... } var func = function(){ 無名函數(shù) -- 必須在調(diào)用之前聲明 ...... } * 在傳遞給函數(shù)的參數(shù)中,有一個隱含參數(shù)arguments,通過它可以取得所有傳入的參數(shù)。