• 技术文章 >web前端 >前端问答

    Javascript如何获取对象

    藏色散人藏色散人2021-11-16 11:29:49原创949

    Javascript获取对象的方法:1、通过function创建一个对象的构造方法;2、通过new创建一个对象;3、获取直接在对象上定义的属性和方法即可。

    本文操作环境:windows7系统、javascript1.8.5版、DELL G3电脑

    Javascript如何获取对象?

    JavaScript 获取对象属性和方法

    一、获取对象属性和方法

    Object.keys() 返回对象的可枚举属性和方法的名称数组。

    Object.getOwnPropertyNames() 返回的数组的所有属性(可枚举或不可枚举)直接找到给定对象。

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

    二、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
            }
        }

    三、分别获取JavaScript对象属性名和方法名

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

    推荐学习:《javascript基础教程

    以上就是Javascript如何获取对象的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Javascript
    上一篇:jquery中显示和隐藏元素用什么 下一篇:jquery相比js的优势是什么
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• javascript中什么是事件• javascript怎么设置元素的宽高• javascript怎么实现选中删除• 如何用javascript画圆
    1/1

    PHP中文网