js屬性物件的propertyIsEnumerable方法
定義
每個物件都有一個propertyIsEnumerable()
方法。此方法返回一個布林值,表明指定的屬性是否是可列舉。
This method can determine whether the specified property in an object can be enumerated by a for...in loop, with the exception of properties inherited through the prototype chain. (來源MDN)
翻譯:
此方法可以確定物件中的指定屬性是否可以由
for ... in
迴圈列舉,但通過原型鏈繼承的屬性除外。
我理解的意思,不知道對不對:
此方法,可以確定物件中的指定屬性(除了通過原型鏈繼承的屬性)是否可以由for...in
迴圈列舉。
也就是說:
for...in
迴圈出來的屬性,除了通過原型鏈繼承的屬性不是可列舉,其他都是可列舉屬性。
用法舉例
使用方法obj.propertyIsEnumerable(prop)
來判斷是否可列舉。
const obj = {}; const arr = []; obj.name= 'weiqinl'; arr[0] = 2018; console.log(obj.propertyIsEnumerable('name')); // true console.log(arr.propertyIsEnumerable(0)); // true console.log(arr.propertyIsEnumerable('length')); // false
找出物件的可列舉屬性
function Person(name,age) { this.name = name this.age = age this.say = function() { console.log('say hi') } } Person.prototype.where = 'beijing' // 在原型鏈上新增屬性 var p = new Person('weiqinl', 18) // 例項化一個物件 p.time = '2018' // 在例項上新增屬性 let arr = [] for(let i in p) { console.log(i, p.propertyIsEnumerable(i)) p.propertyIsEnumerable(i)? arr.push(i) : '' } console.log(arr) // name true // age true // say true // time true // where false // (4) ["name", "age", "say", "time"]
瀏覽器的window物件的可列舉屬性
window物件的可列舉屬性到底有多少個呢?
var arr = []
for(let i in window) {
if(window.propertyIsEnumerable(i)) {
arr.push(i)
}
}
console.log(arr.length)
這個長度,在每個網站的值都是不一樣的,因為他們會各自往window上新增全域性屬性。我看到最少的可列舉屬性值個數為195
與hasOwnProperty的區別
propertyIsEnumberable()
方法,可以確定物件中的指定屬性(除了通過原型鏈繼承的屬性)是否可以由for...in
迴圈列舉。
[完]
相關推薦
js屬性物件的propertyIsEnumerable方法
定義 每個物件都有一個propertyIsEnumerable()方法。此方法返回一個布林值,表明指定的屬性是否是可列舉。 This method can determine whether the specified property in an object can be enumerated by a
js屬性物件的hasOwnProperty方法
Object的hasOwnProperty()方法返回一個布林值,判斷物件是否包含特定的自身(非繼承)屬性。 判斷自身屬性是否存在 var o = new Object(); o.prop = 'exists'; function changeO() { o.newprop = o.prop; d
js clone物件的方法
方法一: function clone(obj){ var o; if(typeof obj == "object"){ if(obj === null){ o = null; }else{
js:Array物件常用方法介紹
前言 在js中,陣列作為一個特殊的物件。是我們常用的資料格式。今天就來梳理一下常用的陣列方法. 1.基礎 幾種基礎的就簡單介紹一下:建立陣列 var arr1 = new Array(); //括號可以傳參,指定陣列長度。目前arr1.length是0 var arr2 = new Array(3)
js--document物件以及方法
document物件 document物件的方法: write():向html文件中輸入指定的物件。 writeln():向html文件中寫入資料並換行。 open():開啟文件以收集write或者writeln的輸出。 close():關閉
js獲取物件屬性的兩種方法,object.屬性名,[‘屬性名’ ]
1、通過點的方式 2、通過括號的方式 例: <input type="text" value="hello" id="text"/> var oText = document.getElementById("text") (1)通過點的方式 oText.pr
js中Object物件常用方法和屬性
1、屬性 Object.prototype.writable:預設為false Object.prototype.enumerable:預設為false Object.prototype.configurable:預設為false Object.prototype.constructor:用
js判斷物件屬性是否存在的方法
判斷物件中是否有某屬性的常見方式總結,不同的場景要使用不同的方式。 一、點( . )或者方括號( [ ] ) 通過點或者方括號可以獲取物件的屬性值,如果物件上不存在該屬性,則會返回undefined。當然,這裡的“不存在”指的是物件自身和原型鏈上都不存在,如果原型鏈有
js刪除物件的屬性及封裝方法
javascript中可以通過delete刪除物件的屬性: 使用方法如下:var obj={}; obj.pro="del"; delete obj.pro; //或者 delete obj[pro] //該操作具有返回值 刪除成功為true失敗為false為了便於使用封裝成
JS 輸出物件的屬性以及方法[轉載]
<script>var obj = {attribute:1,method:function() {alert("我是函式");}}for (var i in obj){alert(i); // 輸出屬性名: attribute,methodalert(obj[i])
JS宣告物件時屬性名加引號與不加引號的問題及解決方法
一般情況下屬性名加引號和不加引號是都可以的,效果是一樣的。 var obj = { name : '你好', 'age' : 1, }; document.write( obj['name'] + '<br />' ); document.write(
js入門·物件屬性方法大總結
陣列(Array):系列元素的有序集合; 屬性: length:用於獲取陣列元素的個數,既最大下標加 1 方法: sort(function):在未指定排序號的情況下,按照元素的字母順序排列,如果不是字串型別則轉換成字串,在排序; reverse():顛倒陣列中元素的順序
熟悉 js window 物件屬性和方法
熟練window物件的open、close、alert、confirm、prompt、setTimeout、clearTimeout、setInterval、clearInterval、moveBy、resizeBy、scrollBy方法的使用掌握window物件的moveTo、resizeTo、scroll
js獲取物件的屬性和方法總結
1.訪問物件的屬性 屬性是與物件相關的值。 訪問物件屬性的語法是: objectName.propertyName 這個例子使用了 String 物件的 length 屬性來獲得字串的長度: var message="Hello World!"; var x=mes
js 建立物件的三種方式 及獲取屬性新增屬性的方法
1:直接量法 var obj = { } ;//這是一個空物件 var point = {x:0,y=0}; //point物件有兩個屬性 x 和 y 2.通過new 建立物件 var
JS對象的方法定義了一個函數,並作為對象的屬性存儲。
isp bubuko .com display relative 對象方法 輸出 meta margin 案例:<!DOCTYPE html><html><head><meta charset="utf-8"><titl
javascript 定義物件、方法和屬性的使用方法(prototype)
prototype 定義和用法 prototype 屬性使您有能力向物件新增屬性和方法。 語法 object.prototype = { 函式名 : function(){} } object.prototype.name=value javaSc
js--獲取/賦值文字值innerText/textContent、innerHTML的區別,獲取表單的值;js事件物件屬性target於currentTarget
<body> <div id="box_text"> <p style="color:hotpink;">muzidigbig</p> <p style="color:pink">
JS Array物件方法
方法 描述 concat() 連線兩個或更多的陣列,並返回結果。 join() 把陣列的所有元素放入一個字串。元素通過指定的分隔符進行分隔。 pop() 刪除
JS面向物件之物件屬性的屬性
ECMAScript的定義中,物件的屬性有兩種,一種是資料屬性,另一種是訪問器屬性 我們知道JS中有基本資料型別和物件,物件中的屬性也無外乎是這些型別,可是作為物件的屬性,這些屬性本身卻也多了一些特殊的屬性,而且屬性種類的不同也會使屬性的屬性有些許的差別。下面就來聊聊物件屬性的兩種類別。