面向?qū)ο蟮膉avascript(筆記)
更新時(shí)間:2009年10月06日 00:13:26 作者:
面向?qū)ο蟮膉avascript之學(xué)習(xí)筆記,需要學(xué)習(xí)的朋友可以參考下,腳本之家之前更新了不少這方便的文章。
一、引用
//產(chǎn)生一個(gè)數(shù)組對(duì)象
var items = new Array('1','2','3');
//使一個(gè)引用指向該對(duì)象
var itemRef = items;
items.push('4');
//items 與 itemRef指向同一對(duì)象
alert(items.length === itemRef.length);
// 修改對(duì)象會(huì)產(chǎn)生一個(gè)新對(duì)象
var item = 'test';
var itemRef = item;
item+='ing';
//此時(shí)item和itemRef不再指向同一個(gè)對(duì)象
alert(item != itemRef);
二、判斷傳入?yún)?shù)的數(shù)量及類型
//arguments 能用了判斷函數(shù)參數(shù)的個(gè)數(shù)
function sendMessage(msg,obj){
if(arguments.length ==2)
obj.handleMsg(msg);
else
alert(msg);
}
判斷類型可以使用typeof和javascript對(duì)象的constructor屬性
//typeof能用一個(gè)字符串表達(dá)變量的類型名
//判斷一個(gè)變量num是否是string 類型
if(typeof num == 'string')
//但是typeof對(duì)都是object array類型不能區(qū)分
//利用constructor 判讀num是否是String類型
if(num.constructor == String)
if(num.constructor == Array)
//該函數(shù)判斷一個(gè)函數(shù)的變量的長(zhǎng)度和變量類型
function strict(types,args){
if(types.length != args.length){
throw "參數(shù)個(gè)數(shù)無效";
}
for(var i=0; i<args.length; i++){
if(args[i].constructor != types[i]){
throw '參數(shù)類型不匹配'
}
}
}
復(fù)制代碼 代碼如下:
//產(chǎn)生一個(gè)數(shù)組對(duì)象
var items = new Array('1','2','3');
//使一個(gè)引用指向該對(duì)象
var itemRef = items;
items.push('4');
//items 與 itemRef指向同一對(duì)象
alert(items.length === itemRef.length);
// 修改對(duì)象會(huì)產(chǎn)生一個(gè)新對(duì)象
var item = 'test';
var itemRef = item;
item+='ing';
//此時(shí)item和itemRef不再指向同一個(gè)對(duì)象
alert(item != itemRef);
二、判斷傳入?yún)?shù)的數(shù)量及類型
復(fù)制代碼 代碼如下:
//arguments 能用了判斷函數(shù)參數(shù)的個(gè)數(shù)
function sendMessage(msg,obj){
if(arguments.length ==2)
obj.handleMsg(msg);
else
alert(msg);
}
判斷類型可以使用typeof和javascript對(duì)象的constructor屬性
復(fù)制代碼 代碼如下:
//typeof能用一個(gè)字符串表達(dá)變量的類型名
//判斷一個(gè)變量num是否是string 類型
if(typeof num == 'string')
//但是typeof對(duì)都是object array類型不能區(qū)分
//利用constructor 判讀num是否是String類型
if(num.constructor == String)
if(num.constructor == Array)
//該函數(shù)判斷一個(gè)函數(shù)的變量的長(zhǎng)度和變量類型
function strict(types,args){
if(types.length != args.length){
throw "參數(shù)個(gè)數(shù)無效";
}
for(var i=0; i<args.length; i++){
if(args[i].constructor != types[i]){
throw '參數(shù)類型不匹配'
}
}
}
相關(guān)文章
Javascript面向?qū)ο髷U(kuò)展庫(kù)代碼分享
最近一直在用js做項(xiàng)目,遇到了許多需要應(yīng)用面向?qū)ο髞碓O(shè)計(jì)的功能,由于js對(duì)OOP的原生支持還不是很完善,所以就寫了一個(gè)面向?qū)ο蟮臄U(kuò)展庫(kù)用做底層支持,現(xiàn)在把它單獨(dú)整理出來,完善了一些功能,在這里分享一下2012-03-03JavaScript 面向?qū)ο缶幊蹋?) 基礎(chǔ)
自從有了Ajax這個(gè)概念,JavaScript作為Ajax的利器,其作用一路飆升。JavaScript最基本的使用,以及語法、瀏覽器對(duì)象等等東東在這里就不累贅了。把主要篇幅放在如何實(shí)現(xiàn)JavaScript的面向?qū)ο缶幊谭矫妗?/div> 2010-05-05編寫可維護(hù)面向?qū)ο蟮腏avaScript代碼[翻譯]
編寫可維護(hù)面向?qū)ο蟮腏avaScript代碼[翻譯],學(xué)習(xí)js面向?qū)ο缶帉懙呐笥芽梢詤⒖枷隆?/div> 2011-02-02javascript 面向?qū)ο缶幊? function是方法(函數(shù))
在進(jìn)行編程時(shí),必免不了要碰到復(fù)雜的功能。初學(xué)者最怕復(fù)雜的功能,因?yàn)椴荒軌蚝芎玫倪M(jìn)行功能邊界劃分,只能一大串if、循環(huán)加case堆疊在一起,結(jié)果出來的程序自己看著暈,別人看著更暈。2009-09-09javascript 面向?qū)ο缶幊?function也是類
function在javascript中用來創(chuàng)建函數(shù)或方法,但要想實(shí)現(xiàn)面向?qū)ο蠓绞降木幊?,類是不可或缺的角色之一,而且是主角?/div> 2009-09-09最新評(píng)論
大家感興趣的內(nèi)容
- 1JavaScript 三種創(chuàng)建對(duì)象的方法
- 2JS 創(chuàng)建對(duì)象(常見的幾種方法)
- 3JS類的封裝及實(shí)現(xiàn)代碼
- 4詳解new function(){}和function(){
- 5javascript復(fù)制對(duì)象使用說明
- 6js創(chuàng)建對(duì)象的幾種常用方式小結(jié)(推薦)
- 7Javascript 面向?qū)ο螅ㄒ唬?共有方法,私有方法,特
- 8改變javascript函數(shù)內(nèi)部this指針指向的三種方法
- 9Javascript Object.extend
- 10JavaScript定義類或函數(shù)的幾種方式小結(jié)
最近更新的內(nèi)容
- javascript 面向?qū)ο缶幊袒A(chǔ):封裝
- Javascript函數(shù)加殼多用于事件綁定
- javascript類式繼承新的嘗試
- javascript類繼承機(jī)制的原理分析
- JavaScript 基于原型的對(duì)象(創(chuàng)建、調(diào)用)
- javascript 面向?qū)ο?實(shí)現(xiàn)namespace,class,繼承,重
- javascript面向?qū)ο笾甁avascript 繼承
- 面向?qū)ο蟮腏avascript之二(接口實(shí)現(xiàn)介紹)
- JavaScript 面向?qū)ο缶幊蹋?) 定義類
- JavaScript OOP面向?qū)ο蠼榻B