首页 > 代码库 > 《JavaScript权威指南》学习笔记——Day3
《JavaScript权威指南》学习笔记——Day3
今天看到对象这一章节,对象这一章需要理解的内容非常的多,而且比较的晦涩。在书中看到一个方法,理解透彻了,写下来再复习复习,捋一捋思路。
/*==============================================*给Object.prototype添加一个不可枚举的extend()方法*这个方法继承调用它的对象,将作为参数传入的对象的属性一一复制*除了值以外,也复制属性的所有特性,除非在目标对象中有存在同名的属性*参数对象的所有自有对象(包括不可枚举的属性)也会一一复制===============================================*/Object.defineProperty ( Object.prototype, "extend", // 添加Object.prototype.extend { writable : true, enumerable : false, // 将其定义为不可枚举 configurable : true, value : function (o) { // 它的值就是这个函数(方法) // 得到所有的自有属性,包括不可枚举的 var names = Object.getOwnPropertyNames( o ); // 遍历属性名 for ( var i = 0; i < names.length; i++ ) { // 如果该属性名存在,则跳过 if ( names[i] in this ) continue; // 获取o中的属性的描述符 var desc = Object.getOwnPropertyDescriptor( o , names[i] ); // 用它给this创建一个属性 Object.defineProperty( this, names[i], desc ); } } });
值得一提的是Object.getOwnPropertyNames()和Object.keys()的区别在于:前者可以获得不可枚举的属性,而后者不可以。
《JavaScript权威指南》学习笔记——Day3
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。