DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> javascript教程:call方法
javascript教程:call方法
編輯:關於JavaScript     

網頁制作poluoluo文章簡介:call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變為由 thisObj 指定的新對象。

call 方法
調用一個對象的一個方法,以另一個對象替換當前對象。

call([thisObj[,arg1[, arg2[,   [,.argN]]]]])
參數1:thisObj
可選項。將被用作當前對象的對象。
參數2:arg1, arg2, , argN
可選項。將被傳遞方法參數序列。
說明:
call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變為由 thisObj 指定的新對象。
如果沒有提供 thisObj 參數,那麼 Global 對象被用作 thisObj。

看懂了沒?說實話我沒看懂,哈哈,沒看懂繼續往下看。

call 方法在js繼承中經常看到,也一直搞不懂,這到底是什麼東西,看下面這段代碼:

01.function Person(name,age){
02.  
this.name = name;
03.  
this.age=age;
04.  
this.alertName = function(){
05.   
alert(this.name);
06.  
}
07.  
this.alertAge = function(){
08.   
alert(this.age);
09.  
}
10. 
}
11.
 
12. 
function webDever(name,age,sex){
13.  
Person.call(this,name,age);
14.  
this.sex=sex;
15.  
this.alertSex = function(){
16.   
alert(this.sex);
17.  
}
18. 
}
19. 
var test= new webDever("愚人碼頭",28,"男");
20. 
test.alertName();//愚人碼頭
21. 
test.alertAge();//28
22. 
test.alertSex();//男

這樣 webDever類就繼承Person了,Person.call(this,name,age) 的 意思就是使用 Person對象代替this對象,那麼 webDever中不就有Person的所有屬性和方法了嗎,test對象就能夠直接調用Person的方法以及屬性了;

說的再明白一點,就是相當於將webDever中的Person.call(this,name,age)這部分代碼替換為Person類的:

1.this.name = name;
2.  
this.age=age;
3.  
this.alertName = function(){
4.   
alert(this.name);
5.  
}
6.  
this.alertAge = function(){
7.   
alert(this.age);
8.  
}
這樣webDever類就相當於:

01. 
function webDever(name,age,sex){
02.  
this.name = name;
03.  
this.age=age;
04.  
this.alertName = function(){
05.   
alert(this.name);
06.  
}
07.  
this.alertAge = function(){
08.   
alert(this.age);
09.  
}
10.
 
11.  
this.sex=sex;
12.  
this.alertSex = function(){
13.   
alert(this.sex);
14.  
}
15. 
}
16. 
var test= new webDever("愚人碼頭",28,"男");
17. 
test.alertName();//愚人碼頭
18. 
test.alertAge();//28
19. 
test.alertSex();//男

不知道能不能這麼理解?望大家斧正。

留一個問題:假設webDever類只要繼承Person類中的alertName方法,這樣可以嗎?代碼應該怎麼寫?

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved