使用方法父属性值作为变量

时间:2016-01-07 13:00:45

标签: javascript

如何在对象上下文中使用property : value对,就好像它们是var = value对一样?那么不使用this关键字?

var obj = {
    prop_1 : 1,
    prop_2 : 2,
    myMethod : function(){
        this[this.prop_1] = this.prop_1;
        return prop_1;
    }
}

console.log( obj.myMethod() );

2 个答案:

答案 0 :(得分:0)

您可以将函数用作类。

编辑1

删除new点数@Denis



function myClass(){
  // Private variables
  var prop1 = 10;
  var prop2 = 20;
  
  function getProp1(){
    return prop1;
  }
  
  function getProp2(){
    return prop2;
  }
  
  function setProp1(value){
    prop1 = value;
  }
  
  function setProp2(value){
    prop2 = value;
  }
  
  // Public property...
  return {
    getProp1:getProp1,
    getProp2:getProp2,
    setProp1:setProp1,
    setProp2:setProp2,
  }
}

var obj = myClass();

console.log(obj.getProp1());

obj.setProp1(100);

console.log(obj.getProp1());




答案 1 :(得分:0)

如果您想减少this内关键字myMethod的实例,我要为您提供的最好的方法是将this替换为t或类似的东西。 这只会在原始变量名称中添加两个字符。

myMethod: function() {
   var t = this;

   // use t instead of this
   t.prop_1 = 43 - t.prop_1;

   return t.prop_1;
}

这是JSFiddle