当前位置:首页 > 行业动态 > 正文

如何在JavaScript中获取对象的属性?

在JavaScript中,要获取对象的属性值,可以使用点操作符(.)或方括号([])。如果有一个名为 obj的对象,其属性为 property,则可以通过 obj.property或 obj["property"]来获取该属性的值。

JS 获得对象的方法

如何在JavaScript中获取对象的属性?  第1张

获取对象的所有方法

方法 描述
使用typeof运算符和filter()方法 通过创建一个函数,使用typeof运算符检查对象的类型是否为函数,并使用filter()方法过滤出所有方法。
使用typeof运算符和forin循环 通过创建一个函数,使用typeof运算符检查对象的类型是否为函数,并使用forin循环遍历对象的属性。

示例代码:

function Obj() {
    this.m1 = function M1() {
        return "From M1";
    }
    this.m2 = function M2() {
        return "From M2";
    }
}
function getAllMethods(obj = this) {
    return Object.keys(obj)
        .filter((key) => typeof obj[key] === 'function')
        .map((key) => obj[key]);
}
console.log(getAllMethods(new Obj())); // [ [Function: M1], [Function: M2] ]

获取DOM元素的方法

方法 描述
getElementById 通过元素的ID获取指定的元素。
getElementsByName 通过元素的name属性获取元素集合。
getElementsByTagName 通过元素的标签名获取元素集合。
getElementsByClassName 通过元素的类名获取元素集合。
document.documentElement 获取html的方法。
document.body 获取body的方法。
querySelector 通过选择器获取一个元素。
querySelectorAll 通过选择器获取一组元素。

示例代码:

// 通过ID获取元素
let elementById = document.getElementById('div1');
// 通过类名获取元素集合
let elementsByClass = document.getElementsByClassName('div2');
// 通过标签名获取元素集合
let elementsByTag = document.getElementsByTagName('div');

获取对象属性和方法

方法 描述
Object.keys() 返回对象的可枚举属性和方法的名称数组。
Object.getOwnPropertyNames() 返回的数组包含所有属性(可枚举或不可枚举)直接找到给定对象。
for…in循环 遍历对象的所有可枚举属性(包括继承的属性)。

示例代码:

function myObj(name, attr) {
    this.name = name;
    this.attr = attr;
    this.sayHi = function () {
        return 'hi everyone!!!';
    }
}
var myTester = new myObj("shinejaie", 1);
var arr = Object.keys(myTester);
console.log('arr', arr); // 输出 arr ["name", "attr", "sayHi"]

获取对象值的方法

方法 描述
点运算符 使用点 (.) 表示法来访问对象的特定属性。
方括号运算符 使用方括号 ([]) 和属性名称的字符串表示来访问值。

示例代码:

var obj = {abc: "ss", nn: 90};
var v1 = obj.abc; // 使用点的方式
var v2 = obj["abc"]; // 使用中括号的方式
console.log(v1); // 输出 "ss"
console.log(v2); // 输出 "ss"

相关问题与解答

问题1: JavaScript中如何动态获取对象的属性值?

答:可以使用方括号运算符[] 来动态获取对象的属性值。

var obj = {abc: "ss", nn: 90};
var propertyName = 'abc';
var value = obj[propertyName]; // value 为 "ss"

这种方法允许你使用变量来存储属性名称,从而动态地访问对象的属性。

问题2: 如何在JavaScript中遍历对象的所有属性和方法?

答:可以使用for...in 循环来遍历对象的所有可枚举属性(包括方法和属性)。

var obj = {abc: "ss", nn: 90, sayHello: function() { return "Hello"; }};
for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        console.log(key + ": " + obj[key]);
    }
}

这段代码会输出对象obj 的所有属性和方法,包括abc、nn 和sayHello。

0