1.當構造函數不需要傳遞參數時,可以省略那一對小括号。
例如:obj=new Object;
2通路屬性的兩種方法:
(1).作為對象的屬性的話就可以通過.号進行通路。
例如:var a=new String('kehaojian');
alert(a.substring(2,3));
結果是h
(2).使用方括号進行通路.
var a=new Object;
a.y=33;
alert(a['y']);
結果是33
變量的四種不同結果:
var p="kehaojian";
function ke(){
var p="ke";
alert(this.p);
}
ke();
結果kehaojian
p="ke";
結果:ke
var p="ke";
alert(p);
結果為ke
p="kehaojian";
3.this關鍵字表示對某個對象的引用,可以把它了解為一個引用類型的變量,但它的值是由系統确定的,也就是說this無法被指派的。
(1).在函數體内沒有顯式的說明它是一個對象,而非window對象的屬性時,那麼此時的this就是這個對象。
如:var ke=new Object;
ke.hao=function(){
alert(this===ke);
結果為true;
function(){
alert(this===windows);
alert(this===window);
window.ke();
結果為true
(2).當用new關鍵字來調用函數時,此時的this就是這個構造函數建立的對象。
var ke=new Object;
4.函數Function對象的方法:(相當于Function類)
apply:有兩個參數,一個是用來改變this的引用,另一個是用來傳遞參數清單(一般為數組)。适用于動态的改變this的引用。
call:和apply相似,隻是傳遞的參數有點不同,call第二個參數不是數組。
var obj=new Object;
var func1=new Function("a","b","alert(\"func1\"+(this===window)+(a-b))");
var func2=function(a,b){
alert("func1"+(this===obj)+(a-b));
func1(4,5);
func1.apply(obj,[4,5]);
func2(4,5);
func2.apply(obj,[4,5]);
函數的執行環境:
從裡到外,裡值代替外值,外值仍不變。
caller屬性:用來顯示函數的調用者。
1.在全局執行環境下,它的值為null
2.在另一個函數中被調用的話,它的值就是那個函數(整個格式都不變)。
var ke=new Function("alert("ke:"+ke.caller)");
function haojian(){
ke();//在這個函數中調用a函數;
alert('haojian:'+haojian.caller);
haojian();
結果是ke:function haojian(){
alert('haojian'+haojian.caller);
haojian:null
5.函數中的arguments對象:隻用在函數體内,用來管理函數的實際參數。
有兩個屬性:
(1).callee:用來顯示正在執行的函數,也就是函數的本身。
alert(arguments.callee);
結果是
alert(arguments.callee);
(2).length:用來顯示函數被調用時實際傳遞的參數個數。
例如:function ke(){
alert(arguments[0]+arguments[1]);
}
window.ke(1,2);
結果是3
6.Constructor: 構造函數:在對象建立或者執行個體化時候被調用的方法。通常使用該方法來初始化資料成員和所需資源。
每個對象都有一個指向建立自己的構造函數的屬性;用this來建立構造函數。
如:function ke(x,y){
this.x=x;
this.y=y;
var obj=new ke(4,5);
alert(obj.x+obj.y);
本文轉自gauyanm 51CTO部落格,原文連結:http://blog.51cto.com/gauyanm/561421,如需轉載請自行聯系原作者