面向对象(十二)Object.property详解

2017-03-04  本文已影响36人  凸小布

Object.property中的属性和方法


constructor

<script>

    function Person() {}

    var p = new Person();
    console.log(p.constructor);                     //function Person() {}
    console.log(Person.prototype.constructor);      //function Person() {}
    console.log(Object.prototype.constructor);      //function Object() { [native code] }

</script>

hasOwnProperty

<script>
    function Person() {
        this.name = "默认的姓名"
    }

    //检查对象中是否拥有指定的属性(实例属性)
    var p1 = new Person();
    p1.hasOwnProperty("name");  //true
    p1.hasOwnProperty("age");   //false
    p1.hasOwnProperty("constructor");   //对象的constructor是从原型对象上继承的
</script>

isPrototypeOf

<script>

    function Animal() {}

    function Cat() {}

    Cat.prototype =Animal.prototype;
    //检查某对象是否是指定对象的原型对象
    var cat = new Cat();
    console.log(Animal.prototype.isPrototypeOf(cat));   //true
</script>

propertyIsEnumerable

<script>
    var obj = {
        name:"张三",
        age:20,
        hello:function () {
            console.log("hello");
        },
        showName:function () {
            console.log(this.name);
        }
    }

    //属性是否存在且可以枚举
    console.log(obj.propertyIsEnumerable("name"));      //true
</script>

toString

<script>

    var obj = {};
    console.log(obj.toString());  //打印[object Object]

    var arr = [1,2,3,4,5];
    console.log(arr.toString());    //打印1,2,3,4,5

    var num = 10;
    console.log(num.toString());               //10

    var date = new Date();
    console.log(date.toString());           //Mon Feb 13 2017 19:00:13 GMT+0800 (CST)

    //toString方法可以传入参数,在处理Number类型数据的时候,可以传入指定的进制
    console.log(num.toString(2));       //1010  == 1*2*2*2+0*2*2+1*2+1*1 = 10
    console.log(num.toString(3));       //101   == 1*3*3 + 0*3 + 1*1 = 10
</script>

valueOf

<script>
    var obj = {};
    console.log(obj + 1);       //[object Object]1
    //说明:如果该对象有对应的基本数据类型的值,则返回对应的基本数据类型值,如果没有则返回this本身。

    var  o = {name:"张三"};
    console.log(o + 1); //[object Object]1

    var date = new Date();
    console.log(date.valueOf());        //1486984088998

</script>
上一篇下一篇

猜你喜欢

热点阅读