重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
javascript有類的概念。
創新互聯公司專注于伊春企業網站建設,自適應網站建設,商城網站建設。伊春網站建設公司,為伊春等地區提供建站服務。全流程按需求定制開發,專業設計,全程項目跟蹤,創新互聯公司專業和態度為您提供的服務
js里面類通過function進行定義,有些類似c++的struct定義。
代碼示例:
function?MyClass(){
this.a?=?'2';
this.show=function(){
alert('1');
}
}
var?myClass?=?new?MyClass();
alert(myClass.a);//獲取屬性
myClass.show();//調用類方法
javascript是一個“基于對象”的編程語言,不是面向對象的編程語言。
你要知道javascript中的function定義的函數實際上就是Function對象實例。
例如:
function demo(x){
alert(x);
}
實際上等價于:
Function demo = new Function("x","alert(x)");
所以你如果想要用javascript來模擬面向對象編程(例如Java的類),那么就可以用function來模擬Class,用function的原型prototype或者嵌套function來模擬類的方法或者屬性。下面給你一個簡單的例子:
//模擬學生類,可以帶參數,例如initName
function Student(initName){
var name = initName; //模擬學生類的屬性name
}
Student.prototype.printName = function(){ //定義Student類prototype中的printName函數
alert(this.name);
}
測試時可以這樣寫:
var student = new Student("張三"); //創建一個“Student對象”,實際上是一個Function實例對象
student.printName(); //執行student對象的printName函數
JavaScript 是面向對象的語言,引用數據類型都是對象,包括函數也是對象,同時還可以通過 Object 對象自定義對象。
但是,和其他面向對象語言(如 Java 等高級語言)比,也有很大差異,JS 中沒有類或接口的概念,即不能直接定義抽象的類,也不能直接實現繼承。不過,為了編程的方便,我們可以在 JS 中模擬類和繼承的行為。
創建對象實例或類(雖然沒有類的概念,但是可以把用于創建新對象的對象看作類),可以通過構造函數來實現,構造函數就是具有一系列屬性和行為作為函數體的函數,可以通過函數參數傳入值。它就相當于 Java 中類的構造函數,需要時可以通過 var instanceObj = new ConstructorFunc(para1,para2,...) 來創建對象(實例)。
JS 的對象中還有一個重要概念,即原型。每個對象都有原型,原型也是一個對象,可以看做是構造函數的映像,是創建實例的模型。對象(類)的屬性 prototype 即是對原型對象的引用,創建實例后,也有屬性 __proto__ 指向原型對象,但該屬性是隱含的。
由于不斷創造新對象(實例),一級一級的傳遞原型對象,即可構成原型鏈。通過原型鏈,即可實現繼承。首先將父類對象的實例給子類的原型 ChildCons.prototype = new ParentCons(),再在子類構造函數中調用父類構造函數將繼承的屬性初始化。繼承的變通方法還有很多,可以參考一些資料。