从javascript中的对象方法访问对象属性

时间:2011-09-20 11:55:15

标签: javascript

我有类似

的东西
var foo = function(arg){
  var something = {
    myPropVal: "the code",
    myMethodProp: function(bla) {
      // do stuff with mypropval here
      alert(this) // => DOMWindow
    }
  }
}
这可能吗?我可以在给定

的myMethodProp中访问myPropVal的内容

4 个答案:

答案 0 :(得分:4)

确定你可以

var foo = function(arg){
  var something = {
    myPropVal: "the code",
    myMethodProp: function(bla) {
      // do stuff with mypropval here
      alert(this) // => DOMWindow
      alert(this.myPropVal);
    }
  }

  alert(something.myMethodProp());
}
foo();

答案 1 :(得分:2)

您可能需要将其引用为something.myPropVal

答案 2 :(得分:1)

在用作对象中的属性的匿名函数的上下文中,this 指的是该对象并可用于访问其他属性。

const robin = {
  firstName: 'Robin',
  lastName: 'Wieruch',
  getFullName: function () {
    return this.firstName + ' ' + this.lastName;
  },
};

console.log(robin.getFullName());
// "Robin Wieruch"

答案 3 :(得分:0)

是的,你可以,下面是一个例子。

obj = {
  offset: 0,
  IncreaseOffset: function (num) {
    this.offset += num
  },
  
  /* Do not use the arrow function. Not working!
  IncreaseOffset2: (num) => {
    this.offset += num
  } 
  */
}

obj.IncreaseOffset(3)
console.log(obj.offset) // 3