JS中物件屬性的可列舉性
在JS中,物件的屬性分為可列舉和不可列舉,它是由屬性的enumerable值決定的,true為可列舉,false為不可列舉
JS中預定義的原型屬性一般是不可列舉的,而自己定義的屬性一般可列舉
可以通過propertyIsEnumerable方法判斷該屬性是否可列舉
屬性的列舉性會影響以下三個函式的結果:
for ... in ...
Object.keys()
JSON.stringify()
例子:
function Person(){ this.name = 'kong'; } Person.prototype = { age : 18, job : 'student' } var a = new Person(); Object.defineProperty(a, 'sex', { value : 'men', enumerable : false //定義該屬性不可列舉 }) //for in for(var k in a){ console.log(k); } //name age job //Object.keys() console.log(Object.keys(a)); //['name'] //JSON.stringify() console.log(JSON.stringify(a)); //{'name' : 'kong'} //propertyIsEnumerable方法判斷該屬性是否可列舉 console.log(a.propertyIsEnumerable('name')); //true console.log(a.propertyIsEnumerable('age')); //false console.log(a.propertyIsEnumerable('sex')); //false
相關推薦
JS中物件屬性的可列舉性
在JS中,物件的屬性分為可列舉和不可列舉,它是由屬性的enumerable值決定的,true為可列舉,false為不可列舉 JS中預定義的原型屬性一般是不可列舉的,而自己定義的屬性一般可列舉 可以通過propertyIsEnumerable方法判斷該屬性是否可列舉 屬性的列
js物件中什麼是可列舉性(enumerable)?
概念 可列舉性(enumerable)用來控制所描述的屬性,是否將被包括在for...in迴圈之中。具體來說,如果一個屬性的enumerable為false,下面三個操作不會取到該屬性。 * for..in迴圈 * Object.keys方法 * JSON.stringif
JS 物件屬性"可列舉"
物件屬性可列舉,表示該屬性的值不可修改,可認為該屬性是常量。 如何定義不可列舉的屬性? var obj = {name: 'jack', age:23} Object.defineProperty(obj, 'id', {value : '123', enumerable
js物件的可列舉性
引言 說到列舉,可能很多人都會想到列舉型別,但在javascript物件中有一個屬性為可列舉性,他是什麼呢? 概念 可列舉性(enumerable)用來控制所描述的屬性,是否將被包括在for…in迴圈之中。具體來說,如果一個屬性的enumerable為false,下面三個操作不會取到該屬性。 for…in迴
js中物件屬性的型別和屬性的特性
ES5中物件的屬性可以分為資料屬性和訪問器屬性 資料屬性 資料屬性包含以下4個特性: [[configurable]]:表示屬性是否可以被delete,是否可以被重新修改,或者是否可以被修改成訪問器屬性 [[enumerable]]:是否可列舉,是否能通過for in 迴圈返
JavaScriptES6物件之屬性的可列舉性及遍歷詳解
目錄 可列舉性 屬性的遍歷 可列舉性 物件的每個屬性都有一個描述物件,用來控制該屬性的行為,Object.getOwnPropertyDescriptor方法可以獲取該屬性的描述物件。描述物件的enumerable屬性,稱為可列舉性,如果為true,為可列舉的,如
ES6-物件的擴充套件-屬性的可列舉性和遍歷
可列舉 物件的每一個屬性都有一個描述物件,用來控制該屬性的行為。Object.getOwnpropertyDescriptor 方法可以獲取該屬性的描述物件。 let obj = { foo: 123 }; Object.getOwnPropertyDescriptor(
遍歷js中物件的屬性和值
今天做專案中無意中看到此方法,之前解決的方法是用了模板頁面實現的。在此分享給大家。問題:通過遍歷屬性名陣列,獲取物件的屬性值失敗剛開始的錯誤程式碼如下:for(var i=0;i<dataList.length;i++) { var dataLine="
解析js中的原型鏈和在原型鏈中物件屬性查詢
//原型鏈中屬性的查詢 function Person(name,color){ this.name=name; this.color=color; } function Teacher(name,age){ this.name=name; this.age=age;
js--獲取/賦值文字值innerText/textContent、innerHTML的區別,獲取表單的值;js事件物件屬性target於currentTarget
<body> <div id="box_text"> <p style="color:hotpink;">muzidigbig</p> <p style="color:pink">
JS中物件的進化史
階段1 人們習慣用字面量的形式定義物件: var obj = { name: 'zyp', age: 18, like: function() { console.log('愛睡覺!') } /** ES6寫法 ** like() {
js中物件引用,淺拷貝,深拷貝--示例
1. 物件引用 var a = {name:'wanger'} var b = a ; a===b // true b.name = 'zhangsan' a.name //'zhangan' 2 .淺拷貝 var a = {name:'wanger'} var b = Object.a
js獲取物件屬性的兩種方法,object.屬性名,[‘屬性名’ ]
1、通過點的方式 2、通過括號的方式 例: <input type="text" value="hello" id="text"/> var oText = document.getElementById("text") (1)通過點的方式 oText.pr
vue陣列中物件屬性變化頁面不渲染問題
vue陣列中物件屬性變化頁面不渲染問題:https://www.cnblogs.com/thinkingthigh/p/7789108.html 做checkbox多選功能的時候遇到了一個坑,邏輯怎麼看都對,但是就是有bug,最後發現數組那裡值變了頁面勾選沒有重新渲染。 換了關
解決vue中物件屬性改變檢視不更新的問題
問題描述: 頁面input的值修改後,物件的屬性值並未發生變化 問題解決: vue雙向繫結時,writable(屬性值是否可以重寫)預設為false 將其改為true即可。 Object.defineProperty(obj, objKey, { &nbs
js中物件轉化成字串、數字或布林值的轉化規則
js中物件可以轉化成 字串、數字、布林值 一、物件轉化成字串: 規則: 1、如果物件有toString方法,則呼叫該方法,並返回相應的結果;(程式碼通常會執行到這,因為在所有物件中都有toString方法) 2、如果物件有valueOf方法,則呼叫該方法,並返回相應的結果; 3、否則丟擲異常。 通常,所有物件
js中json屬性增刪改查
<script type="text/javascript"> var json = { "age":24,
Js中物件的深拷貝和淺拷貝
淺拷貝:只拷貝物件的基礎屬性值,對屬性值為物件或陣列的屬性則拷貝指標。 深拷貝:拷貝物件的所有屬性作為一個全新的物件。拷貝前後的物件互不影響。 淺拷貝僅僅是指向被複制的記憶體地址,如果原地址中物件被改變了,那麼深拷貝出來的物件也會相應改變。 一、物件引用 物件引用容易
Vue.js中計算屬性和方法的區別
在vue.js中,計算屬性和方法達到的效果是一樣的,但是計算屬性是基於依賴進行快取的,只有message發生改變才會導致reverseMessage發生改變,只要 message 還沒有發生改變,多次訪問 reversedMessage 計算屬性會立即返回之前的計算結果,而不
CSS中哪些屬性可繼承?
字體系列:font-family,font-size,font-style,font-weight,font-stretch,font-size-adjust; 列表相關:list-style,list-style-image,list-style-position,lis