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

Using a methods parent property values as variables

本文关键字:变量 属性 使用方法      更新时间:2023-09-26

如何在对象上下文中使用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() );

您可以将函数用作类。

编辑1

删除@Denis 的new学分

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

如果您想减少myMethod中关键字this的实例,我建议您最好用t或类似的东西替换this。这只会在原始变量名中添加两个字符。

myMethod: function() {
   var t = this;
   // use t instead of this
   t.prop_1 = 43 - t.prop_1;
   return t.prop_1;
}

这是一个JSFiddle