(本文摘录于阮一峰老师所写文章,https://wangdoc.com/javascript/basic/index.html,作个人学习使用。)
Object 对象的相关方法
1、Object.getPrototypeOf():方法返回参数对象的原型。这是获取原型对象的标准方法。
2、Object.setPrototypeOf():方法为参数对象设置原型,返回该参数对象。它接受两个参数,第一个是现有对象,第二个是原型对象。
3、Object.create():该方法接受一个对象作为参数,然后以它为原型,返回一个实例对象。该实例完全继承原型对象的属性。
Object.create方法的实质是新建一个空的构造函数F,然后让F.prototype属性指向参数对象obj,最后返回一个F的实例,从而实现让该实例继承obj的属性。
除了对象的原型,Object.create方法还可以接受第二个参数。该参数是一个属性描述对象,它所描述的对象属性,会添加到实例对象,作为该对象自身的属性。
另外,Object.create方法生成的对象,继承了它的原型对象的构造函数。
4、Object.prototype.isPrototypeOf():用来判断该对象是否为参数对象的原型。
5、Object.prototype.proto:返回该对象的原型。该属性可读写。
根据语言标准,proto属性只有浏览器才需要部署,其他环境可以没有这个属性。它前后的两根下划线,表明它本质是一个内部属性,不应该对使用者暴露。因此,应该尽量少用这个属性,而是用Object.getPrototypeOf()和Object.setPrototypeOf(),进行原型对象的读写操作。
6、获取原型对象方法的比较:
获取实例对象obj的原型对象,有三种方法。
obj.proto
obj.constructor.prototype
Object.getPrototypeOf(obj)
上面三种方法之中,前两种都不是很可靠。proto属性只有浏览器才需要部署,其他环境可以不部署。而obj.constructor.prototype在手动改变原型对象时,可能会失效。因此一般使用第三种方法。
7、Object.getOwnPropertyNames():方法返回一个数组,成员是参数对象本身的所有属性的键名,不包含继承的属性键名。
Object.getOwnPropertyNames方法返回所有键名,不管是否可以遍历。只获取那些可以遍历的属性,使用Object.keys方法。
8、Object.prototype.hasOwnProperty():方法返回一个布尔值,用于判断某个属性定义在对象自身,还是定义在原型链上。
9、对象拷贝:
如果要拷贝一个对象,需要做到下面两件事情。
(1)确保拷贝后的对象,与原对象具有同样的原型。
(2)确保拷贝后的对象,与原对象具有同样的实例属性。
copyObject()

网友评论