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
相關文章
相關標籤/搜索