《JavaScript高级程序设计》第三版 P35
认识对象
书上一句话总结了对象:对象就是一组数据和功能的集合。(听着很简单!但是,这个集合到底是什么,该怎么用...一脸懵逼)
在ES中,Object类型是所有它的实例的基础。也就是Object类型所具有的的任何属性和方法也同样存在更具体的对象中。
var obj = new Object(); obj.name = 'zs'; obj.sayHi = function () { console.log('Hi'); } console.log(obj.hasOwnProperty('a')); // 实例对象 true console.log(obj.hasOwnProperty('sayHi')); // 实例对象 true console.log(obj); // 实例对象 console.log(obj.constructor); // 构造函数Object() console.log(obj.__proto__); // 原型 /* constructor: ƒ Object() // 实例的构造函数 hasOwnProperty: ƒ hasOwnProperty() // 检测属性在实例对象中,不再原型中 isPrototypeOf: ƒ isPrototypeOf() // 用于检查传入的对象是否是另一个对象的原型 propertyIsEnumerable: ƒ propertyIsEnumerable() // 用于检查给定的属性是否能够使用for-in语句来枚举 toLocaleString: ƒ toLocaleString() // 返回对象的字符串表示,该字符串与执行环境的地区对应 toString :ƒ toString() // 返回对象的字符串形式 valueOf: ƒ valueOf() // 返回对象的字符串、数值或布尔值表示,通常与toString()方法返回值相同 __defineGetter__: ƒ __defineGetter__() // __defineSetter__: ƒ __defineSetter__() // __lookupGetter__: ƒ __lookupGetter__() // __lookupSetter__: ƒ __lookupSetter__() // get __proto__: ƒ __proto__() // set __proto__: ƒ __proto__() // */