1.Object对象
前面断断续续也介绍了很多Object对象的知识点,这里整理一下吧
(1)简介
Object是Javascript中所有对象的父级对象,我们创建的所有对象都继承于此,包括内建对象。
语法:new Object([]);或者{name:value, name:value…}
属性:Object.prototype,可以为所有Object类型的对象添加属性。
(1)Object.create
指定原型对象和属性创建一个对象。
语法:Object.create(proto,[propertiesObject])
参数:
proto是一个对象,作为新创建对象的原型
propertiesObject:一个对象值,可以包含若干个属性,属性名称为新建对象的属性名,属性值为那个属性的属性描述对象。
var obj = {x: 1};
var obj2 = Object.create(obj, {
y : {value : 10, writable : true}
});
alert(obj2.y);
(2)Object.getOwnPropertyNames
返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性)组成的数组
语法:Object.getOwnPropertyNames(obj)
描述:Object.getOwnPropertyNames 返回一个数组,该数组对元素是 obj 自身拥有的枚举或不可枚举属性名称字符串
var obj = {x: 1};
var obj2 = Object.create(obj, {y : {value : 10, writable : true}});
console.log(Object.getOwnPropertyNames(obj));
console.log(Object.getOwnPropertyNames(obj2));
(3)Object.getOwnPropertyDescriptor
返回指定对象上一个自有属性对应的属性描述符。(自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性))
语法:Object.getOwnPropertyDescriptor(obj,prop)
参数:
obj:对象
prop:属性名称
返回值:如果指定的属性存在于对象上,则返回其属性描述符(property descriptor),否则返回 undefined
var obj = {x: 1};
var obj2 = Object.create(obj, {y : {value : 10, writable : true}});
console.log(Object.getOwnPropertyDescriptor(obj, 'x'));
console.log(Object.getOwnPropertyDescriptor(obj2, 'y'));
(4)Object.getPrototypeOf
返回指定对象的原型(也就是该对象内部属性[[Prototype]]的值)
语法:Object.getPrototypeOf(obj)
描述:如果参数不是一个对象类型,将跑出TypeError异常
2.Object.prototype
所有对象都继承了Object.prototype的方法和属性,尽管它们可能被覆盖
Object.prototype.constructor
返回一个指向创建了该对象原型的函数引用
var obj3 = new Object();
alert(obj3.constructor == Object); //true