1

私はこのようなものを持っています:

function showFunction () {
  // need position and place
}

var obj = {
  position: 1,
  place: 2,
  onShow: showFunction
}

showFunction から位置と場所にアクセスするにはどうすればよいですか?

4

3 に答える 3

4

this動作するはずです:

関数がオブジェクトのメソッドとして呼び出されると、メソッドが呼び出されたオブジェクトにthisが設定されます。

function showFunction() {
    console.log(this.position, this.place);
}
var obj = {
    position: 1,
    place: 2,
    onShow: showFunction
}
obj.onShow()
于 2012-06-29T20:31:59.733 に答える
2

関数は JavaScript で巻き上げられるため、関数の外側と同じように、関数の内側.positionを参照するだけです。.place

function showFunction() {
  return obj.position;
}

しかし、何らかの理由で にアクセスできない場合は、Jonathan が言ったように、引数としてobjに渡すことができます。objshowFunction()

function showFunction(obj) {
    return obj.position;
}

var obj = {
  position: 1,
  place: 2,
  onShow: function() {
      return showFunction(obj);
  }
}
于 2012-06-29T20:30:54.660 に答える
2

showFunctionのメンバーを作成しているためobj、 経由でオブジェクトにアクセスできますthis

function showFunction () {
    var a, b;
    a = this.position;
    b = this.place;
}

var obj = {
  position: 1,
  place: 2,
  onShow: showFunction
}

objまたは、関数の外と同じようにアクセスできます。

function showFunction () {
    var a, b;
    a = obj.position;
    b = obj.place;
}
于 2012-06-29T20:30:56.050 に答える