JavaScript類和內建對象

來源:互聯網
上載者:User
javascript|對象|內建對象

Javascript 對象 和類 

Javascript是基於對象而非物件導向的程式設計語言,它不支援類和繼承,Javascript在物件導向方面與Java的嚴謹相比,顯得非常隨便。 


建立對象 


Javascript通過實現包含屬性說明和方法定義的構造方法來聲明類,並沒有專門的class類定義。 

如:用來聲明Oven類的構造方法 

function Oven(color,type,time) 

{this.color=color; 

this.type=type; 

this.time=time; 

this.info=info; 



function info() 

{document.writeln("<B>顏色:</B>",this.color); 

document.writeln("<B>類型:</B>",this.type); 

document.writeln("<B>出廠日期:</B>",this.time); 



建立Oven類對象執行個體: 

oven1=new Oven("紅色","精巧型","99.1.1"); 

oven2=new Oven("藍色","典雅型","99.10.1"); 

oven3=new Oven("黃色","實用型","2000.1.1"); 

jscript1.html: 

<HTML> 

<HEAD> 

<TITLE> "歡迎選購"</TITLE> 

<s cript LANGUAGE="Javas cript" > 

function Oven(color,type,time) 

{this.color=color; 

this.type=type; 

this.time=time; 

this.info=info; 



function info() 

{document.writeln("<B>顏色:</B>",this.color,"<BR>"); 

document.writeln("<B>類型:</B>",this.type,"<BR>"); 

document.writeln("<B>出廠日期:</B>",this.time,"<BR>"); 



</script> 

</HEAD> 

<BODY> 

<H2>烤箱商品</H2> 

<script> 

oven1=new Oven("紅色","精巧型","1999年1月1日"); 

oven2=new Oven("藍色","典雅型","1999年10月1日"); 

oven3=new Oven("黃色","實用型","2000年1月1日"); 

</script > 

<HR> 

<s cript> 

oven1.info(); 

</script> 

<HR> 

<script> 

oven2.info(); 

</script> 

<HR> 

<script> 

oven3.info(); 

</script> 

<HR> 

</BODY> 

</HTML> 


Javascript還可通過下列方法方便地建立一個對象且可隨意添加屬性: 

var oven1=new Object(); 

oven1.color="c1"; 

oven1.type="t1"; 

oven1.time="t1"; 


Javascript的可用對象有: 


anchor 

applet 

button 

checkbox 

Date 

document 

form 

history 

link 

location 

Math 

password 

radioButton 

reset 

selection 

string 

submit 

text 

textArea 

window 


Navigator的對象繼承樹 


navigator 

window 


history 

document 


anchors 

forms 

links 

location 


一:window對象 


window對象是 Javascript的最高層對象,它包含除了Navigator對象外的所有對象。 


註:有些方法和屬性只有支援Javascript1.2的瀏覽器才能使用。 


1.屬性: 


defaultStatus:設定狀態行預設字串,唯讀。 


status:描述狀態行字串,可讀寫。 


frames:包含視窗中所有FRAME的對象數組,frames.length可取得FRAME個數。 


frame:一個FRAME對象。 


self:當前視窗。 


parent:父視窗或frameset。 


top:當前視窗的最高層視窗。 


name:視窗的名字。 


innerHeight:給出瀏覽器視窗內部高度。 


innerWidth:給出瀏覽器視窗內部寬度。 


outerHeight:給出整個瀏覽器視窗高度。 


outerWidth:給出整個瀏覽器視窗寬度。 


locationbar:設定顯示或隱藏瀏覽器地址欄,如:locationbar=true 


menubar:設定顯示或隱藏瀏覽器功能表列,如:menubar=false 


personalbar:設定顯示或隱藏瀏覽器指示欄,如:personalbar=false 


scrollbars:設定顯示或隱藏視窗捲軸,如:scrollbars=true 


statusbar:設定顯示或隱藏瀏覽器狀態列,如:statusbar=true 


toolbar:設定顯示或隱藏瀏覽器工具列,如:toolbar=false 


java:提供訪問JAVA API類屬性和方法,如:java.lang.Math.random。 


netscape:提供引用netscape.*工具包。 


sun:提供引用sun.*工具包。 


document:視窗中當前所包含的文檔對象。 


location:指定當前文檔URL的字串。 


history:與視窗關聯的history對象。 


2. 方法 


alert("string"):開啟一個警告對話方塊並顯示string資訊。 


confirm("string"):開啟一個帶有OK和Cancel按鈕的對話方塊並顯示string資訊,若使用者選擇OK返回true,選擇Cancel返回false。 


prompt("string"): 開啟一個顯示string資訊並帶有單行文本輸入欄位的對話方塊,對話方塊關閉時返回使用者輸入的字串。(見視窗舉例1) 


setTimeout:以毫秒為單位為一將要發生事件設定時間。(見視窗舉例2和3) 


clearTimeout:重設setTimeout所作的設定。 


captureEvent(eventType):設定視窗捕捉指定類型的事件。 


releaseEvents(eventType):停止捕捉指定類型事件。 


handleEvent(event):若設定了captureEvent(),則指定類型的事件將傳遞給handleEvent()方法。 


focus():使視窗得到輸入焦點。 


blur():除去當前視窗中的輸入焦點。 


stop():停止當前檔案的下載,相當按下“Stop”按鈕。 


close():關閉視窗。 


open(url,name,features,replaceFlag):尋找一視窗或開啟一新視窗。(見視窗舉例2) 


url:指定視窗中顯示的資源,Null 字元串將開啟一空白視窗。 


name:是視窗的名字。 


replaceFlag:值為true時,新視窗將取代原視窗在記錄中的位置。 


features:給出逗號分隔視窗屬性值,如:menubar=no。 


features: 


alwaysLowered=yes|no:視窗是否總在其它視窗下面。 


alwaysRaised=yes|no:視窗是否總在其它視窗上方。 


dependent=yes|no:視窗是否依附於父視窗,即父視窗關閉時它也關閉。 


hotkeys=yes|no:是否取消熱鍵。 


location=yes|no:是否顯示當前URL。 


menubar=yes|no:是否顯示功能表列。 


resizable=yes|no:是否允許使用者改變視窗大小。 


scrollbars=yes|no:是否帶捲軸。 


status=yes|no:是否顯示視窗底部的狀態列。 


titlebar=yes|no:是否顯示標題列。 


toolbar=yes|no:是否顯示工具列。 


z-lock=yes|no:是否固定視窗位置。 


height|innerHeight=象素值:視窗內容區高度。 


width|innerWidth=象素值:視窗內容區寬度。 


outerHeight=象素值:視窗高度。 


outerWidth=象素值:視窗寬度。 


screenX=象素值:視窗左邊框位置。 


screenY=象素值:視窗上邊框位置。 


3.視窗事件 


onBlur():視窗失去焦點時。 


onDragdrop():當檔案或捷徑被拖動到視窗時。 


onError:當出現Javascript錯誤時。 


onFocus():視窗獲得焦點時。 


onLoad():瀏覽器裝入頁面時。 


onMove():視窗被移動時。 


onResize():視窗被改變大小時。 


onUnload():使用者離開頁面時。 


4.視窗舉例 


例1: promptdemo.html 


<HTML> 

<HEAD> 

<TITLE>javascript prompt demo</TITLE> 

</HEAD> 

<BODY> 

<script Language="Javascript"> 

document.write("<H1>prompt demo<br><br>"); 

msg= prompt ("請輸入內容:"); 

document.write(msg+"</H1>"); 

document.close(); 

</script> 

</BODY> 

</HTML> 


例2: windowDemo.html 


<script language="Javascript"> 

function newwindow() 

{ window. open ("../script1.htm","localwindow","toolbar=no,statusbar=no,menubar=no, 


scrollbars=yes,resizable=no,width=200,height=200"); 





window. status ="我只待一會兒!"; 

setTimeout ("erase()",3000); 


function erase() 



window.status=""; 



</script> 

<html> 

<head> 

<title>Javascript window Demo</title> 

</head> 

<body > 

<h1>這是視窗大小使用示範,請注意看一下狀態列!<br><br><br> 

</body> 

</html> 


例二: windowdemo2.html 


<s cript LANGUAGE="Javascript"> 

function scroll(seed) 

{var msg="歡迎來到袁方JAVA講壇,講壇網址:www.triworks.com.cn"; 

var out = " "; 

var c = 1; 

if (seed > 100) 

{seed--; 

var cmd="scroll(" + seed + ")"; 

timerTwo=window.setTimeout(cmd,100); 



else 

if (seed <= 100 && seed > 0) 

{for (c=0 ; c < seed ; c++) 

{out+=" "; 



out+=msg; 

seed--; 

var cmd="scroll(" + seed + ")"; 

window.status=out; 

timerTwo=window.setTimeout(cmd,100); 



else 

if (seed <= 0) 

{if (-seed < msg.length) 

{out+=msg.substring(-seed,msg.length); 

seed--; 

var cmd="scroll(" + seed + ")"; 

window.status=out; 

timerTwo=window.setTimeout(cmd,100); 



else 

{window.status=" "; 

timerTwo=window.setTimeout("scroll(100)",7); 







timerONE=window.setTimeout('scroll(100)',50); 

</script> 

<html> 

<head> 

<title>Javascript window Demo2</title> 

</head> 

<body> 

<br><br><br> 

<h1>這是"跑馬燈",請

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。