首頁  >  文章  >  web前端  >  javascript自訂物件的三種類型方法程式碼詳解

javascript自訂物件的三種類型方法程式碼詳解

伊谢尔伦
伊谢尔伦原創
2017-07-21 13:20:122008瀏覽

1)JS中可以為物件定義三種類型的方法:私有方法、實例方法、類別方法,與Java類似:

私有方法只能在物件內部使用

#實例方法必須在物件實例化後才能使用

類別方法可以直接透過類別名稱去使用

#注意:方法的定義不能透過前面所說的index方式進行。

2)定義私有方法

私有方法必須在建構函式體內定義,而且只能在建構函式體內使用。

語法格式:function methodName(arg1,…,argN){ }

#例如:

function User(name){
 
this.name=name;
 
function getNameLength(nameStr){
 
return nameStr.length;
 
}
 
this.nameLength=getNameLength(this.name);
 
}

3)定義實例方法,目前也可以使用兩種方式:

prototype方式,在建構子外使用,語法格式:

functionName.prototype.methodName=method;

functionName.prototype.methodName= function(arg1,…,argN){};

this方式,在建構子內部使用,語法格式:

this.methodName=method;

this.methodName=function(arg1,…,argN){};

上面的語法描述中,method是外部已經存在的一個方法,methodName要定義的物件的方法,意思是將外部的一個方法直接賦給物件的某個方法。

以function(arg1,…,argN){}的方式定義物件方法是開發人員應該掌握的。

定義實例方法的一些範例:範例1

function User(name){
 
this.name=name;
 
this.getName=getUserName;
 
this.setName=setUserName;
 
}
 
function getUserName(){
 
return this.name;
 
}
 
Function setUserName(name){
 
this.name=name;
 
}

定義實例方法的一些範例:範例2 

function User(name){
 
this.name=name;
 
this.getName=function(){
 
return this.name;
 
};
 
this.setName=function(newName){
 
this.name=newName;
 
};
 
}

定義實例方法的一些範例:範例3 

#
function User(name){
 
this.name=name;
 
}
 
User.prototype.getName=getUserName;
 
User.prototype.setName=setUserName();
 
function getUserName(){
 
return this.name;
 
}
 
Function setUserName(name){
 
this.name=name;
 
}

定義實例方法的一些例子:範例4 

4)定義類別方法

類別方法需要在建構子外定義,可以直接透過建構函式名稱對其進行引用。

語法格式:

functionName.methodName=method;

functionName.methodName=function(arg1,…,argN){};

範例: 

function User(name){
 
this.name=name;
 
}
 
User.getMaxAge=getUserMaxAge;
 
function getUserMaxAge(){
 
return 200;
 
}

User.getMaxAge=function(){return 200;};
alert(User.getMaxAge());

以上是javascript自訂物件的三種類型方法程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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