Object 再读

173 阅读1分钟
/**
Object 相关: 

prototype.toString: 可以类型判断
prototype.valueOf : 返回原始值,Math 和 Error 对象没有 valueOf 方法。

prototype.isPropertyOf
prototype.hasOwnPropertyOf

keys: 自身可枚举属性组成的  键 数组
values: 自身所有可枚举 属性值 数组 (不包含原型链,区别for in)
entries: 自身可枚举属性的 键值对 数组

definePropertyOf
getPropertyOf

is

assign
create

 */

{
    let t = new Boolean(true)
    console.log(t.valueOf() == t);
    console.log(t.valueOf() === t);
}

{
    function Product(name,price) {
        this.name = name
        this.price = price
    }
    Product.prototype.addr = 'sz'
    let p = new Product('al',20)
    console.log(Object.values(p));
    console.log(Object.keys(p));
    console.log(Object.entries(p));
}



{
console.log(Object.prototype.__proto__);
console.log(Object.prototype.prototype);


let obj = {}
let arr = []
let map = new Map()
let s = Symbol()
let f = () => 20;

console.log(Object.prototype.toString.apply(obj));
console.log(Object.prototype.toString.apply(arr));
console.log(Object.prototype.toString.apply(map));
console.log(Object.prototype.toString.apply('obj'));
console.log(Object.prototype.toString.apply(true));
console.log(Object.prototype.toString.apply(null));
console.log(Object.prototype.toString.apply(undefined));
console.log(Object.prototype.toString.apply(20));
console.log(Object.prototype.toString.apply(s));
console.log(Object.prototype.toString.apply(f));
}