// 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