从另一个函数读取值的正确方法是什么?

时间:2012-09-19 07:16:59

标签: javascript node.js

说我有这个功能

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中,我知道你可以使用$ this-> first_name来实现,如何在javascript中完成?另外如果你可以在javascript中调用另一个函数,有没有一种正确的方法来完成它,就像在PHP $ this-> first_name()

提前谢谢

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您无法从任何其他功能访问该变量,除非您在 naga的解决方案中明确传递该变量,因为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

答案 2 :(得分: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);