Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取对象属性值_Javascript - Fatal编程技术网

Javascript 获取对象属性值

Javascript 获取对象属性值,javascript,Javascript,这没有帮助。如何获得财产总额的obj var obj = { a: { value: 1 }, b: { value: 2 }, sum: { value: obj.a.value + obj.b.value } }; console.log(obj.sum); sum本身被认为是一个JavaScript函数。所以这是有效的: var obj = { a: { value: 1 }, b: {

这没有帮助。如何获得财产总额的obj

var obj = {
  a: {
    value: 1
  },

  b: {
    value: 2
  },

  sum: {
    value: obj.a.value + obj.b.value
  }
};

console.log(obj.sum);
sum本身被认为是一个JavaScript函数。所以这是有效的:

var obj = {
    a: {
        value: 1
    },

    b: {
        value: 2
    },

    get sumValue(){
        return this.a.value + this.b.value
    }
};
您可以了解有关对象方法的更多信息。

sum本身被认为是一个JavaScript函数。所以这是有效的:

var obj = {
    a: {
        value: 1
    },

    b: {
        value: 2
    },

    get sumValue(){
        return this.a.value + this.b.value
    }
};

您可以了解有关对象方法的更多信息。

您需要在内联getter中使用以下文字对自反射表达式进行编码:

var obj = {
  a: {
    value: 1
  },

  b: {
    value: 2
  },

  get sum(){
    return this.a.value + this.b.value
  }
};

console.log(obj.sum); // shows: 3
这是ES5,但经常被忽略。它适用于所有主流浏览器,甚至IE8和node

getter语法很好,因为obj.sum的作用类似于一个数字,并且随着a和b的变化而自动更新


当然,使用方法作为函数并像obj.sum那样调用它可能更为传统,因为这向其他编码器表明,它或多或少是一个计算属性…

您需要在内联getter中使用,以文本形式对自反射表达式进行编码,如下所示:

var obj = {
  a: {
    value: 1
  },

  b: {
    value: 2
  },

  get sum(){
    return this.a.value + this.b.value
  }
};

console.log(obj.sum); // shows: 3
这是ES5,但经常被忽略。它适用于所有主流浏览器,甚至IE8和node

getter语法很好,因为obj.sum的作用类似于一个数字,并且随着a和b的变化而自动更新


当然,更传统的做法可能是使用方法作为函数,并像obj.sum那样调用它,因为这向其他编码人员表明它或多或少是一个计算属性…

看起来您正试图向对象添加方法,如果是这样的话,应该是这样的:

var obj = {
  a: {
    value: 1
  },
  b: {
    value: 2
  },
  sum:function() {
    return this.a.value + this.b.value
  }
};

console.log(obj.sum); //Returns the function object
console.log(obj.sum()); //Returns the value 3

看起来您正在尝试向对象添加方法,如果是这样,则应该是这样:

var obj = {
  a: {
    value: 1
  },
  b: {
    value: 2
  },
  sum:function() {
    return this.a.value + this.b.value
  }
};

console.log(obj.sum); //Returns the function object
console.log(obj.sum()); //Returns the value 3

在对象初始值设定项中,尚未将对象指定给变量obj。那么,obj是未定义的,所以不能使用obj.a.value

但您可以通过实例化匿名函数来实现类似的功能:

var obj = new function() {
  this.a = {
    value: 1
  };
  this.b = {
    value: 2
  };
  this.sum = {
    value: this.a.value + this.b.value
  };
};

在对象初始值设定项中,尚未将对象指定给变量obj。那么,obj是未定义的,所以不能使用obj.a.value

但您可以通过实例化匿名函数来实现类似的功能:

var obj = new function() {
  this.a = {
    value: 1
  };
  this.b = {
    value: 2
  };
  this.sum = {
    value: this.a.value + this.b.value
  };
};

什么是价值:总之?出于美观的原因给这个表达贴上标签似乎有点混乱。。。它也不会返回任何内容,因此不会如图所示工作…@Dsafds,不工作此对象初始值设定项的语法无效。这是对象方法的不正确初始化,我不确定人们为什么投票?-1什么?初始化对象属性,然后,在逗号this.sum之后,函数不返回任何内容,还有,是否有对象语法?WTF就是这样!!!什么是价值:总之?出于美观的原因给这个表达贴上标签似乎有点混乱。。。它也不会返回任何内容,因此不会如图所示工作…@Dsafds,不工作此对象初始值设定项的语法无效。这是对象方法的不正确初始化,我不确定人们为什么投票?-1什么?初始化对象属性,然后,在逗号this.sum之后,函数不返回任何内容,还有,是否有对象语法?WTF就是这样!!!谢谢各位。谢谢。get命令可以作为的简写。e、 g.Object.definePropertyobj,sum,{get:function{returnthis.a.value+this.b.value;}};谢谢各位。谢谢。get命令可以作为的简写。e、 g.Object.definePropertyobj,sum,{get:function{returnthis.a.value+this.b.value;}};这是一个很好的anon构造函数示例。我认为使用Object.assign来清理静力学/减轻重量,这种模式应该比我们看到的更受欢迎。这是个好建议。当然有一个平衡点,这比一个文本要贵,但我喜欢用任意代码初始化的能力……这是一个anon构造函数的好例子。我认为使用Object.assign来清理静力学/减轻重量,这种模式应该比我们看到的更受欢迎。这是个好建议。当然,这是一种平衡,它的成本比文字要高,但我喜欢用任意代码初始化的能力。。。