文章出處

傳遞參數

function setName(obj){
obj.name="Nicholas";
obj=new object();
obj.name="Greg";
}
var person=new Object();
setName(person);
alert(person.name); //"Nicholas"

在函數體內重新new一個Object,并將它賦值為"Greg",但在函數外部訪問name屬性時,其值仍為"Nicholas".實際上,當函數內部重寫obj時,這個變量引用的就是一個局部對象了。
而這個局部對象會在函數執行完畢后立即銷毀。

檢測類型

如果變量的值是一個對象或null,則typeof操作符會像下面例子中所示的那樣返回"object";

var n=null;
var o=new object();
alert(typeof n); //object
alert(typeof o); //object

延長作用域鏈

當執行流進入下列任何一個語句時,作用域鏈就會得到加長:
try-catch 語句的catch塊
with語句

function buildUrl(){
var qs="?debug=true";
with(location){
var url=href+gs;
}
return url;
}

在此,with語句接收的是location對象,因此其變量對象中就包含了location對象的所有屬性和方法。

沒有塊級作用域

if(true){
var color="blue";
}
alert(color);

如果是在C,C++或是JAVA中,color會在if語句執行完畢后被銷毀,但在javascript中,if語句的變量聲明會將變量添加到當前的執行環境。在使用for語句時尤其要牢記這一差異,如:

for(int i=0;i<10;i++){
doSomething();
}
alert(i); //10

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()