Javascript,從具有變量的函數獲取變量
如何從變量內部獲取變量以便用於整個腳本?
<script>
var variable = function(snap) {
var header= snap.head();
var name = snap.name();
};
alert(variable.name);
</script>
我希望能夠在函數外部使用variable.name。如果可能的話。
Javascript,從具有變量的函數獲取變量
如何從變量內部獲取變量以便用於整個腳本?
<script>
var variable = function(snap) {
var header= snap.head();
var name = snap.name();
};
alert(variable.name);
</script>
我希望能夠在函數外部使用variable.name。如果可能的話。
將「變量」函數視爲一個類。將內部變量更改爲函數的PROPERTIES。 (並且不要命名一個函數「變量」,它只是icky)。
var Variable = function(snap) {
this.name = snap.name() //
}
var the_var = new Variable(snap_func);
console.log (the_var.name());
+1這個構造函數模式似乎是OP試圖完成的事情 – Christophe
說沒有定義snap_func。 – Brian
snap_func就是我所做的 - 你會傳遞你想要傳遞給'Variable'方法的任何函數的名字。 – rGil
您可以刪除var並使其以這種方式工作。如果你不能做到這一點,然後製作一個像getName這樣的新方法並像這樣定義它。
this.getName = function(){
return name;
}
要調用它,你必須使用variable.getName();
它更好地使這樣的訪問器方法,所以你可以檢查名稱是否有你可能不想發送出去的東西。
鼓勵OP在窗口對象上設置一個全局變量是不好的做法,因爲它可以在任何地方被覆蓋,並且代碼不是模塊化的,它涉及打破有效和可控的javascript編碼的基本設計原則。 –
你不能,至少不是這樣。閱讀「關閉」,你會明白爲什麼這是不可能的。 – elclanrs
創建一個容器對象和[看這裏](http://stackoverflow.com/questions/3750082/javascript-oop-best-practices/13074081#13074081)的方向關於如何改變你想要的可訪問性.. Works非常適合頁面和控件。 –