Object对象

Object构造函数

01 使用Object构造函数创建字符串对象

//01 创建字符串对象
var str1 = new String("测试字符串");
var str2 = new Object("测试字符串");
var str3 = str1;

//注意:对象比较相等(需要引用[地址]相等)
console.log(str1 == str2);      //false
console.log(str1 === str2);     //false
console.log(str1 === str3);     //true

02 使用Object构造函数创建数字对象

var num = new Object(10);
console.log(typeof num);    //object

03 使用Object构造函数创建布尔类型对象

var bool = new Object(true);
console.log(typeof bool);   //object

js中所有的内置或自定义对象都继承自Object对象,几乎所有的对象都可以使用Object.prototype上面的属性和方法

Object.prototype

  • 因为js中所有的对象都继承自Obejct,都可以使用Object对象的原型属性和方法,因此不要轻易的扩展Object.prototype。

  • Object.property中的属性和方法

    • constructor 指向原型相关联的构造函数,为Object

    • hasOwnProperty 判断对象中是否拥有某个实例属性(不包括原型链上面的属性)

    • isPrototypeOf 校验某个对象是否是指定对象的原型对象(整条原型链)

    • propertyIsEnumerable 属性是否存在且可枚举(使用for循环可以遍历,即目标属性能否在for循环中显示出来)

    • toString() 返回一个描述目标对象的字符串,对象则返[object object]

    • toString(参数) 参数出可以传入一个用于进制数的参数该参数的默认值为10(主要针对Number类型有效)

    • toLocaleString 同toString,但是会做一些本地化的处理。

    • valueOf() 如果该对象有对应的基本数据类型的值,则返回对应的基本数据类型值,如果没有则返回this本身。

    • Date对象调用该方法会返回一个时间戳。

constructor

说明:该属性指向创建该对象的构造函数,在这里为Object

function Person() {
}

var p = new Person();
console.log(p.constructor);     //function Person() {}
console.log(Person.prototype.constructor); //function Person() {}
console.log(Object.prototype.constructor);  //function Object() { [native code] }

hasOwnProperty
说明:判断对象中是否拥有某个实例属性(不包括原型链上面的属性)

function Person() {
    this.name = "默认的姓名"
}

//检查对象中是否拥有指定的属性(实例属性)
var p1 = new Person();
p1.hasOwnProperty("name");  //true
p1.hasOwnProperty("age");   //false
p1.hasOwnProperty("constructor");   //对象的constructor是从原型对象上继承的

**isPrototypeOf **

说明:校验某个对象是否是指定对象的原型对象(整条原型链);

var obj = {
    name:"张三",
    age:20,
    hello:function () {
        console.log("hello");
    },
    showName:function () {
        console.log(this.name);
    }
}

//属性是否存在且可以枚举
console.log(obj.propertyIsEnumerable("name"));      //true

toString

说明:返回一个描述目标对象的字符串,对象则返回[object object]

var obj = {};
console.log(obj.toString());  //打印[object Object]

var arr = [1,2,3,4,5];
console.log(arr.toString());    //打印1,2,3,4,5

var num = 10;
console.log(num.toString());               //10

var date = new Date();
console.log(date.toString());           //Mon Feb 13 2017 19:00:13 GMT+0800 (CST)

//toString方法可以传入参数,在处理Number类型数据的时候,可以传入指定的进制
console.log(num.toString(2));       //1010  == 1*2*2*2+0*2*2+1*2+1*1 = 10
console.log(num.toString(3));       //101   == 1*3*3 + 0*3 + 1*1 = 10

toLocaleString
说明:作用同toString方法一致,但是会做一些本地化的处理.

valueOf

说明:

① 如果该对象有对应的基本数据类型的值,则返回对应的基本数据类型值,如果没有则返回this本身。

② 如果是Date类型,则返回时间戳。

var obj = {};
console.log(obj + 1);       //[object Object]1
//说明:如果该对象有对应的基本数据类型的值,则返回对应的基本数据类型值,如果没有则返回this本身。

var  o = {name:"张三"};
console.log(o + 1); //[object Object]1

var date = new Date();
console.log(date.valueOf());        //1486984088998
    原文作者:LIT的狐狸
    原文地址: https://www.jianshu.com/p/d573d9b8a1cf
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞