你可以在javascript中访问对象的属性作为值吗?

时间:2016-04-24 05:30:19

标签: javascript javascript-objects

var obj = { 'first':'1st', 'second':'2nd', 'third':'3rd', ...}

我知道访问对象属性的值是......

obj.first || obj["first"] //returns '1st' as a value

我想弄清楚的是如何在没有遍历整个 var obj 的情况下将属性作为值访问,以创建具有该属性的新 var 用值切换。这只是一个全新的对象。

这可能吗?我有足够的背景吗?我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:0)

由于一个对象是'c' != 'e' != 'g' ,你可以将整个对象键拉入一个数组,然后拉出一个适合你的对象..

使用Object方法,您可以访问对象的键,然后使用Object.keys()方法提取适合您的方法。

简短示例

Array.indexOf()

答案 1 :(得分:0)

如果我理解正确,您希望将对象属性绑定到另一个对象的属性,以便o1.first更改o2.first时自动更改。通过安排o1.first属性的设置者,这是可能的。使用对象文字实现此目的的简单方法就像

var o1 = {
           _first: "1st",
           second: "2nd",
            third: "3rd",
            get first() {
                  return this._first
                },
            set first(v) {
                  this._first = v;
                  o2.first = v;
                }
         },
    o2 = {first:""};
console.log(o1) // Object {_first: "1st", second: "2nd", third: "3rd"}
console.log(o2) // Object {first: ""}
o1.first = yes;
console.log(o1) // Object {_first: "yes", second: "2nd", third: "3rd"}
console.log(o2) // Object {first: "yes"}
o1["first"] = "once again"; // "once again"
console.log(o2["first"]);   // "once again"

有关JS对象getter和setter的更多信息,请查看https://robertnyman.com/javascript/javascript-getters-setters.html