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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

[JS] 修改Navigator对象

發布時間:2024/1/23 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [JS] 修改Navigator对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Js中,對于普通的對象,你可以通過下列方法來增加/修改/刪除一個實例屬性

obj = new Object; // 增加屬性 obj.name = 123; // 修改屬性 obj.name = 321; //刪除屬性 delete obj.name

但是對于瀏覽器的navigator對象,卻無法通過上述方式對屬性進行操作

針對navigator對象,你可以采用下列的方式來操作它的屬性

Object.defineProperty(obj, 'key', { //descriptor })

這個屬性可以是添加或修改現有的屬性,obj就是要修改的對象,key就是屬性名,descriptor是一個對象,用來表明新添屬性的一些特性,包括6個參數:

  • configurable: 默認false,表示此屬性是否可用delete刪除
  • enumerable:默認為false,表示此屬性是否可被for...in、Object.keys遍歷到
  • value:默認undefined,此屬性的值,可以是任何JavaScript類型
  • writable:默認為false,此屬性是否可被改寫
  • get: 默認undefined,指定一個函數,當屬性被調用時,此函數也被調用,默認為返回屬性值
  • set:默認undefined,指定一個函數,當屬性被賦值時,此函數也被調用,僅接受一個參數,參數為屬性被賦的值

例如修改navigator的webdriver的值:

Object.defineProperty(window.navigator, 'webdriver', {value:'123'})

注:不知道為什么,我把webdriver的configurable的改為true后會自動刪除這個屬性

屬性被刪除后再調用value會報錯,需要先把屬性添加回來

添加的方法可以用

Object.defineProperty(window.navigator, 'webdriver', {get:function(){return 123}})

函數調用的時候會返回123,這個時候也可以用value屬性來操作它

對于function(){return 123} 我們可以采用ES6中新增的箭頭函數來執行(相當于匿名函數(類似于python中的lambda))

Object.defineProperty(window.navigator, 'webdriver', {get:()=>123)

總結

以上是生活随笔為你收集整理的[JS] 修改Navigator对象的全部內容,希望文章能夠幫你解決所遇到的問題。

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