Home  >  Article  >  Web Front-end  >  How to get objects in Javascript

How to get objects in Javascript

藏色散人
藏色散人Original
2021-11-16 11:29:494241browse

Methods for Javascript to obtain objects: 1. Create an object's constructor through function; 2. Create an object through new; 3. Get the properties and methods defined directly on the object.

How to get objects in Javascript

The operating environment of this article: windows7 system, javascript version 1.8.5, DELL G3 computer

How does Javascript obtain objects?

JavaScript Gets object properties and methods

1. Gets object properties and methods

Object.keys() Returns the enumerable value of the object Array of names of properties and methods.

Object.getOwnPropertyNames() Returns an array of all properties (enumerable or non-enumerable) found directly on the given object.

// 创建一个对象的构造方法
    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"]

    // 返回的数组的所有属性(可枚举或不可枚举)直接找到给定对象。
    console.log("attr", Object.getOwnPropertyNames(myTester)); // 输出 attr ["name", "attr", "sayHi"]

    // 在 Object 原型上增加一个属性
    Object.prototype.newShine = "it's me";

    // 返回可枚举属性一直找到该对象的原型链
    for (var i in myTester) {
        console.log(i);
    }
    // 输出 name,attr,sayHi,newShine

    // 返回直接定义在该对象上的可枚举属性
    for (var i in myTester) {
        if (myTester.hasOwnProperty(i)) {
            console.log(i);
        }
    }
    // 输出 name,attr,sayHi

2. Comparison of Object.keys(), Object.getOwnPropertyNames(), for...in...

// 不可枚举的对象属性
    var nonenum = Object.create({}, {
        getFoo: {
            value: function () {
                return this.foo;
            },
            enumerable: false
        }
    });
    nonenum.foo = 1;
    nonenum.asj = 2;

    // 获取对象可枚举或不可枚举的属性
    console.log(Object.getOwnPropertyNames(nonenum).sort()); // 输出 ["asj", "foo", "getFoo"]

    // 获取对象可枚举的属性
    console.log(Object.keys(nonenum).sort()); // 输出 ["asj", "foo"]

    // 返回直接定义在该对象上的可枚举属性
    for (var i in nonenum) {
        if (nonenum.hasOwnProperty(i)) {
            console.log(i); // 输出 foo asj
        }
    }

3. Obtain JavaScript object property names and method names respectively

// 创建一个对象的构造方法
    function myObj(name, attr) {
        this.name = name;
        this.attr = attr;

        this.sayHi = function () {
            return 'hi everyone!!!';
        }
    }

    // 创建一个对象
    var myTester = new myObj("shinejaie", 1)

    // 获取对象方法
    for (var i in myTester) {
        if (myTester.hasOwnProperty(i) && typeof myTester[i] == "function") {
            console.log("对象方法: ", i, "=", myTester[i])
        }
    }
    // 输出 对象方法: sayHi = () { return 'hi everyone!!!'; }

    // 获取对象属性
    for (var i in myTester) {
        if (myTester.hasOwnProperty(i) && typeof myTester[i] != "function") {
            console.log("对象属性: ", i);
        }
    }
    // 输出 对象属性: name 对象属性: attr

Recommended study: "javascript basic tutorial"

The above is the detailed content of How to get objects in Javascript. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn