Object.prototype的成员介绍

Posted pavilion-y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object.prototype的成员介绍相关的知识,希望对你有一定的参考价值。

3.Object.prototype的成员介绍

       Object.prototype是js中所有的对象的祖宗
       Object.prototype中所有的成员都可以被js中所有的对象使用!

  3.1. 方法: hasOwnProperty

        语法: 对象.hasOwnProperty("属性名")
        功能: 判断当前对象自身是否拥有指定的属性!
        // var obj = {
        //     name: "胡聪聪"
        // };
        // console.log("toString" in obj);//ture (in判断的是当前对象能否访问.toString方法)
        // console.log(obj.hasOwnProperty("toString"));//false  ( 判断当前对象自身是否拥有指定的属性)

   3.2. 方法: isPrototypeOf

       语法: 对象.isPrototypeOf(另一个对象)
       功能: 判断当前对象是否是另外一个对象的原型
        // var obj = {
        //     name: "王思聪"
        // } 
        // var obj1 = {
        //     name: "王健林"
        // }
        // obj.__proto__ = obj1; 
        // console.log(obj1.isPrototypeOf(obj));//true

   3.3 .方法: propertyIsEnumerable

        // 语法: 对象.propertyIsEnumerable("属性名")
        // 功能: 首先判断属性是否属于对象本身,再判断这个属性能否被(for-in)遍历,同时满足这两个条件,才会返回true
 
        //对象的属性能否被(for in)遍历,可以设置的!
        //怎么设置
        //Object.defineProperty
 
        // var obj = {
        //     name: "123"
        // }
        // var obj1 = {
        //     money: 99999
        // }
        // var obj2 = {
        //     house: "大别墅"
        // } 
        // obj.__proto__ = obj1;
        // obj1.__proto__ = obj2; 
        // for(var k in obj){
        //     console.log(k);//name   money   house
        // }
        // console.log(obj.propertyIsEnumerable("name"));//true
        // console.log(obj.propertyIsEnumerable("money"));//false

    3.4. toString和toLocaleString都是将对象转换成字符串

        //toLocaleString是将对象转换成本地格式的字符串(时间字符串)
        // var obj = new Date();
        // console.log(obj.toLocaleString());  //2017-8-2 19:30:32
        // console.log(obj.toString());  //Wed Aug 02 2017 19:30:32 GMT+0800 (中国标准时间)
 
 
       //Object.prototype.toString.call(对象)  对象自身有.toString属性,Object原型也有,这个方法可以直接用Object原型的方法
        var obj = new Date();
        console.log(obj.toString());//Wed Aug 02 2017 19:35:23 GMT+0800 (中国标准时间)
        console.log(Object.prototype.toString.call(obj));//[object Date]
        var arr = [];
        console.log(arr.toString());//""
        console.log(Object.prototype.toString.call(arr));//[object Array]    object==>  typeof arr    Array==> 构造函数
 
         console.log(obj.constructor.toString());  //function Date() { [native code] }

     3.5. valueOf

          {}.valueOf()  //{}
          [].valueOf()  //()
            //获取对象的值  
        //当引用类和值类型数据运算的时候,会先调用valueOf方法,尝试使用返回值运算,如果不能运算,就继续调用toString方法获取返回值运算!
        // var obj = {
        //     valueOf: function () {
        //         return 1
        //     }
        // };
        // console.log(obj + 1);//2

以上是关于Object.prototype的成员介绍的主要内容,如果未能解决你的问题,请参考以下文章

JS高级——Object.prototype成员

prototype的用法

Object.prototype.__proto__ Object.prototype和 Object.prototype.constructor

js中通过Object.prototype.toString方法----精确判断对象的类型

Perl 正则表达式单引号

Linux 内核 内存管理内存映射相关数据结构 ② ( vm_area_struct 结构体成员分析 | vm_mm 成员 | vm_page_prot 成员 | vm_flags 成员 )