js面向對象實例

JSON方式來編寫對象
簡單 不適合多個對象css

var json={a:12,
show:function (){
alert(this);
}
};
json.show(); //理所固然彈出的是object(this指的是json)html

 

call函數chrome

function show(){ alert(this); } show();//window
show().call();//和上面的同樣也是彈出window call()其實就是調用函數 但又和普通的函數調用有區別
show().call(12);//alert 12而不是'this'(window) 即call能夠改變函數執行時的this

function show(a,b){ alert('this是:'+this+'\na是:'+a+'\nb是:'+b); } show(12,5);//彈出window 12 5
show.call('abc',12,5);//只需把第一個參數變成this 後面的仍是實參給形參

 

var arr1=[1,2,3]; var arr2=arr1;//這樣也是引用 而不是單單的複製 //改變方法:
var arr3=[]; for(var i=0;i<arr.length;i++){ arr3.push(arr1[i]); } arr3.push(4);

 

對象由屬性(變量)和方法(函數)構成
<script>
function A(){ this.abc=12; } A.prototype.show=function (){ alert(this.abc); } //繼承A
function B(){ //這個this 是指的new B() 這是處在形參位置上的哇
    A.call(this); //call()其實就是調用函數 但又和普通的函數調用有區別即call能夠改變函數執行時的this
    //經過call來繼承屬性
} B.prototype=A.prototype;//繼承"方法" 原型這個也是引用!(c語言裏的值傳遞啊引用傳遞啊) (下面改正)
B.prototype.fn=function (){ alert('abc'); } var objB=new B(); var objA=new A(); alert(obj.abc);//12
obj.show(); objA.fn();//彈出了對象 按理來講A是沒有這個方法的 可是call()這個是引用傳遞
</script>
//改正方法:
     for(var i in A.prototype){ B.prototype[i]=A.prototype[i]; }

 

 

1.return false能夠用來阻止默認事件即系統默認事件。例如經過阻止默認事件,來對textarea中的值進行範圍限制(經過限制keycode的數值),
也能夠自定義在頁面中的右鍵菜單(oncontextmenu)。
(<textarea>標籤訂義及用法
在html中,<textarea>標籤是用來定義一個多行的文本輸入控件,在文本輸入域中能夠輸入任意長度的文本。文本默認字體是等寬字體(Courier),能夠經過css來改變。
在實際應用中,通常會經過cols屬性和rows屬性來設置textarea控件的尺寸大小(使用 css的height和width屬性來設置更佳)。
cols 規定文本區域內可見的寬度 rows 規定文本區域內可見的行數。超行就上滾動條overflow <textarea style="overflow-x:hidden"></textarea>
)
2.在鼠標移動(mousemove)等事件中,是須要給事件傳一個參數,保證程序的正常運行。而爲了兼容取事件方法爲:var oEvent=ev||event;
四、取消事件冒泡(不往父級傳遞): cancelBubble用於ie的阻止冒泡事件,event.stopPropagation()用於firefox和chrome等其餘瀏覽器。
五、事件綁定:同一個事件加屢次函數會被覆蓋,而綁定不會。
IE方式:
attachEvent(‘’事件名‘’(前面加有on的),函數)綁定事件處理函數。
detachEvent(‘’事件名‘’(前面加有on的),函數)解除綁定。
DOM方式:
addEventListener(事件名稱(沒有on),函數,捕獲(通常都爲false))
aremoveEventListener(事件名稱(沒有on),函數,捕獲(通常都爲false))
能夠同時加不少事件而不相互影響。而且能夠封裝爲函數function(obj,ev,fn)
兼容以下:
if (obtn.attachEvent){IE}else{FF}.json

事件捕獲:setcapture()將事件都集中在一個地方,可是隻有IE支持。 瀏覽器

系統對象:
1.本地對象(非靜態對象)(和環境無關)
什麼是本地對象 (必須得new出來 得實例化以後才能用)
經常使用對象
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error
2.內置對象(靜態對象)(和環境無關)
(eg:Math.ceil() √ var obj=new Math() X 事實上Math只用他的類上的方法 )(不須要new出來 不須要實例化 直接就能拿來用的 叫靜態對象)
Global、Math
3.宿主對象(由瀏覽器提供的對象)宿主:js運行環境(通常就是瀏覽器)
DOM、BOM函數

相關文章
相關標籤/搜索