網頁

AngularJS Code Minified 後的問題: Error: [$injector:unpr] http://errors.angularjs.org/1.2.26/$injector/unpr?

今天在把 AngularJS 的 Code 放上 Production 環境時出現了一個問題:

文件描述$injector設定錯誤,但小弟檢查一遍原code後發現無相關錯誤。

Javascript function 的參數何時參考到原物件?

今天在Stackoverflow上看到一個問題 - Overwriting variables inside functions in JS 

很多人都搞不懂這個重要觀念,因此在幫忙解答後,決定PO在這裡和大家分享。

Q1:為何這樣寫 o 還是沒有變,請各位也一起思考看看:
var o = {x: 1};
function foo(){
    // Overwrite var `o` with a string
    arguments[0] = "string";
}
foo(o);
console.log(o); // Why is `o` still an object and not the string `string`?
感謝網友發問,為什麼function沒有設定參數,foo(o)還可以呼叫,請參考小弟之前寫的Javascript function參數傳遞,這裡的arguments[0]其實就是傳進來的第一個參數,因此上面函式實際等同於:
var o = {x: 1};
function foo(a){
    // Overwrite var `o` with a string
    a = "string";
}
foo(o);
console.log(o); // Why is `o` still an object and not the string `string`?