1

this 関数があるとします

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()

前もって感謝します

4

3 に答える 3

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

function getName(){
  var get_name=name();   
  alert(get_name);
}
于 2012-09-19T07:23:22.777 に答える
1

ローカルであるため、ナガのソリューションのように明示的に渡さない限り、他の関数からその変数にアクセスすることはできません。プロトタイプを使用することもできます。first_namename

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
于 2012-09-19T07:27:29.520 に答える
0

ちょっといたずらですが、これはあなたの質問に対する1つの答えです...

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);
于 2012-09-20T07:27:11.917 に答える