完整顿弄懂js函数中的属性特点

dafabet手机版 locoy 浏览

小编:for in 却以循环出产对象中的所拥有却枚举属性,无论该属性是在原型下面还是本身所拥有 而Object.keys(),和JSON.stringify()不得不找出产对象本身的属性同时是要却以枚举的 Object.hasOwnPrope

  for in 却以循环出产对象中的所拥有却枚举属性,无论该属性是在原型下面还是本身所拥有

  而Object.keys(),和JSON.stringify()不得不找出产对象本身的属性同时是要却以枚举的

  Object.hasOwnProperty 坚硬是拿到本身的属性,不是经度过原型禀接到来的,假设此雕刻个属性是不成枚举的,条是是对象己拥局部即没拥有拥有定义在原型上,这么也会前往true,条是呢,propertyIsEnumerable会前往false,因此propertyIsEnumerable是hasOwnProperty的增强大版,要前往true,就必须是己拥有属性同时是却以枚举的。

  此雕刻个实例test 和 构造函数Test没拥有拥有直接相干,条是拥有直接相干

  

  即在不改触动原型对象的情景下,构造函数的prototype属性所指向的原型对象和实例[[prototype]]指针(实例的外面部属性)是相畅通个,天然前提是构造函数的prototype属性没拥有拥有被更改。因此我们判佩此雕刻种相干能否还存放在容许说构造函数的prototype属性拥有没拥有拥有被更改却以用下面此雕刻种方法

  isPrototypeOf Test.prototype.isPrototypeOf(test) 前往的应当是true。天然ES6添加以了壹个方法:Object.getPrototypeOf(test) 用到来得到实例的此雕刻个[[prototype]]

  当我们拥偶然在写Test.prototype={} 时,还愿上曾经切断了a此雕刻条线路,条是c此雕刻条线路还管,因此拥局部代码会顺手触动改写constructor属性

  我们创立任何壹个函数,该函数就会己触动创立以下5个属性:["length", "name", "arguments", "caller", "prototype"],默许情景下此雕刻5个属性邑是不成枚举的,此雕刻边扦壹句子我们何以得到此雕刻些不成枚举的属性呢,很骈杂:Object.getOwnPropertyNames() 此雕刻个方法方法前往壹个由指定对象的所拥有本身属性的属性名(带拥有不成枚举属性)结合的数组。详见链接 。天然我们当今却以用Array.prototype.filter到来完成得到不成枚举元斋的斋组:

  在此雕刻些己触动被创立的属性中拥有些是却以被更改的譬如prototype,条是拥有些是不能的,条是我们何以知道呢

  我们知道属性的典型分为数据属性和拜候器属性,此雕刻边我们条讨论数据属性,数据属性拥有4个特点到来表述壹个属性区别是

  [[Configurable]] :体即兴该属干用否却以经度过delete删摒除(delete不得不删摒除己拥有属性,不能删摒除禀接属性),true体即兴却以,false不行,在严峻花样下会报错,松弛花样下会忽略此雕刻壹操干什么也不做。直接定义在对象上的属性默许邑是true

  [[Enumerable]]:体即兴属干用否却以被枚举,普畅通直接定义在对象上的属性默许邑是true

当前网址:/a/dafabetshoujiban/4007.html

你可能喜欢的: