🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # Object原型属性和方法 ## 1.constructor 获取创建当前实例对象的构造函数 ``` console.log(Object.prototype.constructor); ``` <br> ## 2.hasOwnProperty 判断当前**实例对象**中**是否存在指定的属性**,存在返回值是true,不存在返回值是false ```javascript var obj  ={ name:"wc", age:3, say:function(){ console.log("世界,你好"); } } console.log(obj.hasOwnProperty("name"));//true console.log(obj.hasOwnProperty("sex"));//false ``` <br> ## 3.isPrototypeOf 判断**当前对象**是否在**指定对象的原型链中**,存在返回值是true,不存在返回值是false ``` console.log(Object.prototype.isPrototypeOf(obj));//true ``` <br> ## 4.propertyIsEnumerable 判断当前对象中的属性是否可以枚举(循环遍历)..可以返回值是true,不可以返回值是false ``` console.log(obj.propertyIsEnumerable("name"));//true ``` <br> ## 5.valueOf() >[warning] 基本包装类型:返回对应的值 引用类型:返回this,对象本身 日期类型:返回时间戳 <br> ``` var str1 =newString("demo"); console.log(str1.valueOf());//返回对应的值 console.log(obj.valueOf());//返回this,对象本身 var a =newDate(); console.log(a)); ``` <br> ## 6.toString() >[warning]基本类型:返回对应值的字符串 如果是数字类型,可以传递一个参数指定转换成上面进制的数字字符串 引用类型:返回\[object Object\]格式的字符串,object为对象的类型,Object为对象对应的构造函数 >[danger]**数组类型的除外,需要借用Object的toString方法获取对应的构造函数** ``` console.log((100).toString());//字符串123 console.log("123".toString());//字符串123 console.log((100).toString(2));//1100100,转换为对应的进制数 console.log(obj.toString());//\[object Object\] var arr = [10,20,30\]; // console.log(arr.toString());//10,20,30的字符串,有问题 //正确写法 console.log(Object.prototype.toString.call(arr));//[object Array] ``` <br> ## 7.toLocaleString() 和toString()方法一样,可以将日期转换成本地格式的数据 ``` var now =newDate(); console.log(now.toLocaleString());//返回年月日,时分秒 ``` <br> ### 判断函数是不是数组的方法 ``` // 判断函数是不是数组的方法 functionisArray(arr){ if(Array.isArray){//判断是不是数组,是数组返回值是true,不是数组返回值是false returnArray.isArray(arr); }else{ returnObject.prototype.toString.call(arr) =="[objec Array]";//判断是不是数组,不是数组返回值是false,是数组返回值是true } } ```