2012-09-19 19 views
1

說我有一個這樣的功能從另一個函數讀取值的正確方法是什麼?

function name(){ 
    var first_name = "mike"; 
} 

我要傳遞的價值FIRST_NAME轉移到另一個功能 - 我知道你能做到這樣:

function name(){ 
    var first_name = "mike"; 
    getName(first_name); 
} 

但說我要訪問它沒有像這樣傳遞

function name(){ 
    var first_name = "mike"; 
    getName() 
} 

在getName中如何從name()函數訪問first_name?

function getName(){ 
    console.log(this.first_name) 
} 

在PHP我知道你可以用$這個 - 做這件事> FIRST_NAME,怎麼會變成這樣被JavaScript做什麼?此外,如果你可以調用JavaScript中的另一個功能,有沒有做到像在PHP $這個 - 有道> FIRST_NAME()

預先感謝您

+1

的http:// javascript.about.com/library/bltut35.htm – konqi

+0

與JoSo的評論和@elclanrs答案,你準備去代碼OOP'ish應用程序 – billy

回答

1
function name(){ 
    var first_name = "mike"; 
    return first_name; 
} 

function getName(){ 
    var get_name=name(); 
    alert(get_name); 
} 
+0

我怎樣才能設置它全局訪問這個變量?這個函數正在做其他的東西,所以我真的不想從它返回值 – mike

+0

你想訪問first_name作爲全局變量與調用該函數? – Nagaraj

1

您不能訪問該變量從任何其他功能,除非你明確地通過它,如納迦的解決方案,因爲first_name是本地的,只有name有權訪問它。你可能想要使用原型。

function Person(name) { 
    this.first_name = name || 'Mike'; 
} 

Person.prototype = { 
    getName: function() { 
    return this.first_name; 
    } 
}; 

var john = new Person('John'); 
console.log(john.getName()); //=> John 
0

的頑皮樣,但是這是一個回答你的問題......

var first_name = "mike"; 

function change_name(new_name) { 
    first_name = new_name; 
} 

function get_name() { 
    return first_name; 
} 

console.log(get_name()); 

我個人比較喜歡像這樣的一種設計模式...

var names = new function() { 
    // The 'this' context may change within callbacks and such, 
    // so this is one way to save it for later use 
    var self = this; 

    this.first_name = "mike"; 
    this.change_name = function(new_name) { 
    self.first_name = new_name; 
    } 
    this.get_name = function() { 
    return self.first_name; 
    } 
} 

console.log(names.first_name); 
console.log(names.get_name()); 
names.change_name("kevin"); 
console.log(names.first_name); 
相關問題