// var obj = { // name: "胡聰聰" // }; // console.log("toString" in obj);//ture (in判斷的是當前對象可否訪問.toString方法) // console.log(obj.hasOwnProperty("toString"));//false ( 判斷當前對象自身是否擁有指定的屬性)
// var obj = { // name: "王思聰" // } // var obj1 = { // name: "王健林" // } // obj.__proto__ = obj1; // console.log(obj1.isPrototypeOf(obj));//true
//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
//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] }
{}.valueOf() //{} [].valueOf() //() //獲取對象的值 //當引用類和值類型數據運算的時候,會先調用valueOf方法,嘗試使用返回值運算,若是不能運算,就繼續調用toString方法獲取返回值運算! // var obj = { // valueOf: function () { // return 1 // } // }; // console.log(obj + 1);//2