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

 

posted @ 2017-12-28 17:29  停停停停停停停  阅读(668)  评论(0编辑  收藏  举报