首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

js对象属性

均为布尔型,默认为true,分别代表删除、枚举、修改,第四个为true 访问器属性 configurable,enumerable,getter,setter 后面两个是非必须的 虽然似乎说的很明白...(let p in zhangsan){ console.log(zhangsan.hasOwnProperty(p),`${p}:${zhangsan[p]}`) } 参考代码 codepen关于js...通过上面的for in的例子,你可以通过for in +hasOwnProperty 的方式得到对象枚举非原型属性以及枚举原型属性。那么还有其他方法么?肯定有的。下面进行表格说明。...方法 内容 备注 for in 枚举,自身以及继承属性 对象以及继承,枚举,不含 Symbol 属性 Object.keys(obj) 返回一个数组,包括对象自身的(不含继承的)所有枚举属性键名...对象自身枚举,不含 Symbol 属性 Object.getOwnPropertyNames(obj) 返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名 对象自身

15.5K10

js nextSibling属性和previousSibling属性

1:nextSibling属性属性表示当前节点的下一个节点(其后的节点与当前节点同属一个级别);如果其后没有与其同级的节点,则返回null。...需要特别注意的是:该属性在不同的浏览器中的执行结果并不都相同,见下面例示: 先来看一个例子: <input id=“a4” type=“button” οnclick...opera和safari对nextSibling的处理方式与FF一致 2:previousSibling属性属性与nextSibling属性的作用正好相反。...3:通过nextSibling或者 previousSibling所获得的HTML标签元素对象的属性问题 一般先通过nextSibling.nodeName来获知其标签名,或者通过nextSibling.nodeType...如果该nextSibling.nodeName = #text,则通过nextSibling.nodeValue来获知其文本值;否则,可以通过nextSibling.innerHTML等其他常用标签元素属性来获取其属性

5.9K30

深入 JS 对象属性

属性决定JS中对象的状态,本文章主要分析这些属性是如何工作的。 JS几种不同的属性 JS有三种不同的属性:数据属性,访问器属性和内部属性。...[[Writable]]:是一个布尔值,表示属性值(value)是否改变(即是否可写),默认为true。...所有的属性都具有以下的特性: [[Enumerable]]:是一个布尔值,表示该属性是否遍历,默认为true。...如果没有指定为 undefined,则是要添加到新创建对象的枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。...for-in循环遍历所有枚举属性的名称,包括继承的属性(请注意,Object.prototype的所有非枚举属性都不会显示): > for (var x in obj) console.log(x)

8.4K50

JS 对象属性相关--检查属性、枚举属性

1.删除属性 delete运算符可以删除对象的属性 delete person.age //即person不再有属性age delete person['age'] //或者这样 delete只是断开属性和宿主对象的联系...,而不会去操作属性中的属性  看到delete a.p之后b.x仍然为1 var a = {p:{x:1}}; var b = a.p; console.log(a.p.x); //1 delete a.p...,不能删除继承属性(要删除继承属性必须从定义这个属性的原型对象上删除它,当然,这会影响到所有继承来自这个原型的对象) function inherit(p){ if(p == null){...obj.hasOwnProperty("y")); //false console.log(obj.hasOwnProperty("toString")); //false 因为obj继承了这个方法,但不是它自己的 只有检测到是自由属性并是枚举的属性时...(obj.p);// undefined undefined console.log(obj[p]);//1 2 } 拓展1: 每个对象都有与之相关的原型(prototype)、类(class)、扩展性

5.7K20

基于属性编辑器框架

对于一个编辑器, 通常是由一个个的"实体"组成, 或者叫"对象". 而"对象"又是由各种"属性"所组成....如果把地形把块对待, 每个地形块做为一个"对象", 高度和纹理编辑当成属性编辑, 那么上面都可以看成是同一种编辑方式了. 还有"摆"的这个操作, 其实本质上了也是对象的位置变换这个属性的变化....由此可以得出: 编辑器的一切操作都是属性编辑 实体不用说了, 相信每个引擎都有Model/Light/Sound之类的对象类. 那么怎么去定义一个属性呢?...下面说说使用属性抽象的好处: 编辑操作 因为对象都是由属性组成的, 所以所有的编辑对象都可以抽象成一种, 那么只需要实现一种编辑方式就可以适用于所有的对象 因为操作是与具体对象相关性不大, 所以扩展新的对象类型对结构的影响很小...增删属性不用改动文件格式, 连版本号都省了 Undo/Redo 对于创建/删除操作, 备份该对象所有属性. 对于属性更改操作, 备份当前编辑属性.

90520
领券