日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

object.defineProperty

發布時間:2025/3/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 object.defineProperty 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、object.defineProperty
給一個對象定義一個新的屬性或者在修改一個對象現有的屬性,并返回這個對象

語法:
  Object.defineProperty(參數1,參數2,參數3)
  參數1:目標對象

  參數2:要修改或者添加的屬性名稱

  參數3:目標對象屬性的一些特征 (是一個對象)
      
      參數1:
        value:屬性值
      參數2:
        writable:對象屬性值是否可以被修改 true允許 false不允許
      參數3:
        configurable:對象屬性是否可以被刪除 true允許 false不允許
      參數4:
        enumerable:對象屬性是否可被枚舉
      參數5:
        get():給一個屬性提供getter方法,當訪問這個對象的屬性值得時候觸發該方法
      參數6:
        set():給一個屬性提供setter方法,當設置屬性值得時候觸發該方法 2、value
var obj = {}; Object.defineProperty(obj,"name",{value:"張三" })Object.defineProperty(obj,"age",{value:"28" })console.log(obj)
 ?3、writable var obj = {}; Object.defineProperty(obj,"name",{value:"張三",writable:false//當設置為false的時候當前對象的屬性值不允許被修改 })obj.name="李四" console.log(obj.name)//張三var obj = {}; Object.defineProperty(obj,"name",{value:"張三",writable:true//當設置為true的時候當前對象的屬性值允許被修改 })obj.name="李四" console.log(obj.name)//李四   

4、configurable

var obj = {}; Object.defineProperty(obj,"name",{value:"張三",configurable:false//當設置為false的時候對象的屬性不允許被刪除 })delete obj.name;console.log(obj.name)//張三var obj = {}; Object.defineProperty(obj,"name",{value:"張三",configurable:true//當設置為true的時候對象的屬性允許被刪除 })delete obj.name;console.log(obj.name)//undefined  

5、enumerable

var obj = {name:"張三",age:"李四"}Object.defineProperty(obj,"name",{enumerable:false//當設置為false的時候對象的屬性不可被枚舉 })Object.defineProperty(obj,"age",{enumerable:false })console.log(Object.keys(obj))//[]var obj = {name:"張三",age:"李四"}Object.defineProperty(obj,"name",{enumerable:true//當設置為true的時候對象的屬性可被枚舉 })Object.defineProperty(obj,"age",{enumerable:true })console.log(Object.keys(obj))//["name",age]

?6、for in && Object.keys()的區別

//for in 與Object.keys()的區別 function Person(name,age){this.name = name;this.age = age; } Person.prototype = {sex:"男" }var man = new Person("張三",18);console.log(Object.keys(man));//["name","age"]for(var key in man){console.log(key);//name age sex } 7、get() && set() var obj = {name:"張三"}Object.defineProperty(obj,"name",{get(){console.log("被訪問了")//當被訪問的時候會觸發get()方法},set(newVal){console.log("被設置了"+newVal)//當被設置的時候會觸發set()方法} }) obj.name//輸出:被訪問了 obj.name="李四";//輸出:被設置了李四

轉載于:https://www.cnblogs.com/xiaoniaohhl/p/11093613.html

總結

以上是生活随笔為你收集整理的object.defineProperty的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。