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;
}

但是如果由于某种原因你不能访问obj,你可以,正如乔纳森所说,obj作为参数传递给showFunction().

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 回答