說明: 如下內容來自互連網相關資料文檔,內容不斷更新;
JavaScript Object Notation javascript對象符號,形式以下:
var cat = {
color:'black',
age:'10',
getAge:function(){
alet('myCat age =' + age);
}
}
這裏建立了一個對象的引用,而且定義了兩個屬性和一個方法;
在javascript中,fuction也是一個對象,能夠看成參數傳給另外的fuction,如:
var myDog = {
bark: function(){
alert('I am a dog!');
}
};
var myCat = {
meow: function(){
alert('I am a cat!');
}
};
function test(testFunction){
testFunction();
}
test(myDog.bark); // I am a dog!
test(myCat.meow); // I am a cat!
注意:當fuction當作參數傳遞時,後面不能帶();fuction後面帶()表示執行該fuction;
關於數組的定義和使用:
var a = new Array();
var b = [];var c = ['first', 'second', 'third'];
var v1 = c[0];
var v2 = c[1];
var v3 = c[2];
//也能夠不使用數字做爲數組的序號,如:
var obj = {} //建立空的對象;
obj['number_1'] = 'this is String value;'
obj['some_function'] = function(){ /* do something */};
//上面的代碼和下面的代碼等同:
var obj = {
number_1:'this is String value;',
some_fuction:fuction(){/* do something */};
}
//下面的兩種寫法有相同的效果:
obj.some_fuction();
obj['some_fuction']();
該對象表明正在執行的函數和調用它的函數的參數,屬於執行函數時建立的隱含對象,它具備數組同樣的 訪問性 質和方式,但不屬於數組的對象 ,它存儲的是實際傳遞給函數的參數,而不是函數定義的參數列表;
如:函數:定義函數Test(a,b,c),直接調用:Test('參數1','參數2')
則:arguments.length = 2 arguments[0] = '參數1' arguments[0] = '
參數2'
Test.length = 3
返回調用該函數的函數的引用,若是由頂層調用,則返回null;
如:定義函數:
A(){
A.caller
};
B(b){ A() };
則在執行B函數時,B調用了A函數,A.caller則返回B函數的引用;
- callee : 用法:arguments.callee
返回正被執行的
Function 對象
callee擁有
length屬性,這個屬性有時候用於驗證仍是比較好的。
arguments.length是實參長度,
arguments.callee.length是形參長度,由此能夠判斷調用時形參長度是否和實參長度一致
函數綁定到另一個對象上去運行,二者僅在定義參數方式有所區別
apply
(thisArg,argArray);
call
(thisArg[,arg1,arg2…] ]);
沒有提供
thisArg
參數,那麼 Global 對象被用做
thisArg
用
call
和
apply
應用另外一個函數(類)之後,當前的函數(類)就具有了另外一個函數(類)的方法或者是屬性,這也能夠稱之爲「繼承」;
call(apply)方法可將一個函數的對象上下文(Function Context)從初始的上下文改變爲由 thisObj 指定的新對象;
如:
var changed={ item:"banana", act: "eating" };
var original={
item: "chair",
act: "sitting in",
ask: function(){
return "who's been "+this.act+" my "+this.item;
}
};
original.ask(); == who's been sitting in my chair;
original.ask.call(changed) == who's been eating in my banana;
用來循環訪問一個數組的每個元素或一個對象的各個屬性值的,且循環體中的代碼 對每個元素或屬性執行一次; 如: for(var x in object){ alert('test'); } 其中object爲對象,且該對象有三個屬性,則循環體內的代碼執行三次;