2014-09-30 69 views

回答

4

這種代碼用於避免代碼中未設置變量的錯誤。像在這種情況下:

if (!isset($variable)) $variable = ""; 

現在你:

function sayHello(name) { 
    var name = name || ""; 
    return "Hello " + name; 
} 

sayHello(); // "Hello " 
sayHello("Mike"); // "Hello Mike" 

function lengthOf(obj) { 
    var obj = obj || []; 
    return obj.length; 
} 

lengthOf(); // 0 
lengthOf([1,2,3]); // 3 

在PHP中,你可以通過使用isset()功能做到這一點:

function sayHello(name) { 
    return "Hello " + name; 
} 

sayHello(); // "Hello undefined" 

function lengthOf(obj) { 
    return obj.length; 
} 

lengthOf(); // ReferenceError cannot read property length of undefined 

你可以通過添加一個簡單的線條避免可以使用你的變量而不會有任何錯誤或意外的結果。

+0

希望你不介意。 – manuell 2016-02-11 14:32:49

+0

一點都不,謝謝。 – 2016-02-11 20:12:47

1

一個用例就是如果你有兩個腳本使用相同的變量/ ns,並且你想確保你只創建一個新的腳本,除非它已經被定義。

你可以用它來模擬命名空間中的javascript:

(function(api){ 

/* private functions here */ 

api.apiFunction = function(){ /* useful code*/ } 

})(window.myNamespace = window.myNamespace || {}) 

任何其他腳本,你以後可能會加載你想成爲同一個命名空間會那麼就使用相同的語法來追加新功能的一部分:

(function(api){ 

/* private functions here */ 

api.anotherApiFunction = function(){ /* useful code*/ } 

})(window.myNamespace = window.myNamespace || {}) 

anotherApiFunction現在附加到相同的命名空間。你會訪問這兩個功能,如:

myNamespace.apiFunction(); 
myNamespace.anotherApiFunction(); 
相關問題