<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          Js中Object對象的理解,Object常用的屬性和方法有哪些?

          時間:?2017-12-29閱讀:?1097標簽:?Object

          Js中Object是什么?

          在JavaScript中的所有對象都是繼承Object對象而來的, 我們可以理解為Object是所有js對象通用的功能。也就是說:Array,Function,Date,Number等對象都是從Object對象而衍生出來的,它們具有不同的特性,例如Date表示時間結構,Function表示運行的方法,都是它們的原始類型(valueOf)賦予的能力。


          Object的prototype屬性:

          Object.prototype屬性是指Object 的原型對象,幾乎所有Js對象都是Object的實例,會繼承Object.prototype的屬性及方法。所以當我們修改Object.prototype的時候都會傳播到所有對象身上,除了它們被改對象的里層其他原型鏈所覆蓋。例如:

          Object.prototype.add="測試";
          console.log(Array.add);//輸出:測試


          Object.prototype屬性和方法?

          屬性/方法描述 
           Object.prototype.constructor特定的函數,用于創建一個對象的原型。
           Object.prototype.hasOwnProperty()返回一個布爾值,判斷對象自身屬性中是否具有指定的屬性。
           Object.prototype.isPrototypeOf()返回一個布爾值, 判斷一個對象是否存在于另一個對象的原型鏈上。
          Object.prototype.propertyIsEnumerable()
          返回一個布爾值,表示指定的屬性是否可for...in循環枚舉。(通過原型鏈繼承的屬性除外)
          Object.prototype.toString()返回一個該對象的字符串。
          Object.prototype.toLocaleString()返回調用 toString() 的結果,但會進行本地格式處理。toString和toLocaleString 差異
          Object.prototype.valueOf()返回指定對象的原始值,如果沒有則返回本身。js許多內置對象都重寫了該函數,以實現更適合自身的功能需要。

          說明:

          1.toString()方法和valueOf()方法,在輸出對象時會自動調用,調用區別在于:在數值運算中,優先調用了valueOf,字符串運算中,優先調用了toString。

          2.isPrototypeOf()方法主要用于判斷對象object1是否存在于另一個對象object2的原型鏈中,例如:

          var array = new Array();   
          console.log(Array.prototype.isPrototypeOf(array)); //返回true

          3.hasOwnProperty()方法可以用于在for in 在循環對象的屬性時防止遍歷原型鏈的枚舉屬性,例如:

          Object.prototype.b= 1; 
          var foo = {a: 2}; 
          for (var i in foo) { 
                if (foo.hasOwnProperty(i)) { 
                     console.log(foo[i]); //只輸出2,如果不是要hasOwnProperty()方法,會輸出2,1
               } 
          }

          4.其中propertyIsEnumerable()方法判斷實例屬性和原型屬性返回為true的,才能通過for...in遍歷出來。


          Object.prototype.constructor屬性

          對創建對象的函數的引用(指針)。對于 Object 對象,該指針指向原始的 Object() 函數。幾乎所有的js對象都會從它的原型上繼承一個 constructor 屬性

          var a= {};
          a.constructor === Object; // true
          var b = [];
          b.constructor === Array; // true

          該屬性下帶有的方法有:assign、caller、create、defineProperties、defineProperty、entries、freeze、getOwnPropertyDescriptor、getOwnPropertyDescriptors、getOwnPropertyNames、getOwnPropertySymbols、getPrototypeOf、is、isExtensible、isFrozen、isSealed、keys。

          帶有的屬性有:length、name、preventExtensions、prototype、seal、setPrototypeOf、values。


          constructor下常用屬性、方法:

          Object.assign(target, …sources):

          把任意多個的源對象自身的可枚舉屬性拷貝給目標對象,然后返回目標對象。

          Object.create(proto,[propertiesobject]):

          創建一個擁有指定原型和若干個指定屬性的對象。

          Object.defineProperties(obj, props):

          在一個對象上添加或修改一個或者多個自有屬性,并返回該對象。

          Object.defineProperty(obj, prop, descriptor):

          直接在一個對象上定義一個新屬性,或者修改一個已經存在的屬性, 并返回這個對象。obj:需要定義屬性的對象。prop:需定義或修改的屬性的名字。descriptor:將被定義或修改的屬性的描述符。

          Object.entries(obj):

          返回一個包含由給定對象所有可枚舉屬性的屬性名和屬性值組成的 [屬性名,屬性值] 鍵值對的數組,數組中鍵值對的排列順序和使用for…in循環遍歷該對象時返回的順序一致。 舉例: 

          var obj = { foo:"bar", baz: 42 }; 
          console.log(Object.entries(obj)); // [ ["foo", "bar"], ["baz", 42] ]

          Object.freeze(obj):

          凍結一個對象,凍結指的是不能向這個對象添加新的屬性,不能修改其已有屬性的值,不能刪除已有屬性,以及不能修改該對象已有屬性的可枚舉性、可配置性、可寫性。也就是說,這個對象永遠是不可變的。該方法返回被凍結的對象。

          Object.getOwnPropertyDescriptor(obj, prop):

          返回指定對象上一個自有屬性對應的屬性描述符。

          Object.getOwnPropertyNames(obj):

          返回一個由指定對象的所有自身屬性的屬性名(包括不可枚舉屬性)組成的數組。 舉例: 

          // 類數組對象 
          var obj = { 0: "a", 1: "b", 2: "c"}; 
          console.log(Object.getOwnPropertyNames(obj).sort()); // ["0", "1", "2"]

          Object.getPrototypeOf(object):

          返回該對象的原型。

          Object.is(value1, value2):

          判斷兩個值是否是同一個值。

          Object.isExtensible(obj):

          判斷一個對象是否是可擴展的(是否可以在它上面添加新的屬性)。

          Object.isFrozen(obj):

          判斷一個對象是否被凍結(frozen)。

          Object.isSealed(obj):

          判斷一個對象是否是密封的(sealed)。密封對象是指那些不可 擴展 的,且所有自身屬性都不可配置的(non-configurable)且屬性不可刪除的對象(其可以是可寫的)。

          Object.keys(obj):

          返回一個由給定對象的所有可枚舉自身屬性的屬性名組成的數組,數組中屬性名的排列順序和使用for-in循環遍歷該對象時返回的順序一致 。舉例: 

          var arr = ["a", "b", "c"]; 
          console.log(Object.keys(arr)); // "0,1,2"
          // 類數組對象 
          var obj = { 0 : "a", 1 : "b", 2 : "c"}; 
          console.log(Object.keys(obj)); // "0,1,2"

          Object.preventExtensions(obj):

          讓一個對象變的不可擴展,也就是永遠不能再添加新的屬性。

          Object.setPrototypeOf(obj, prototype):

          將一個指定的對象的原型設置為另一個對象或者null

          Object.values(obj):

          返回一個包含指定對象所有的可枚舉屬性值的數組,數組中的值順序和使用for…in循環遍歷的順序一樣。 舉例: 

          var obj = { foo: "bar", baz: 42 }; 
          console.log(Object.values(obj)); // ["bar", 42]


          站長推薦

          1.阿里云: 本站目前使用的是阿里云主機,安全/可靠/穩定。點擊領取2000元代金券、了解最新阿里云產品的各種優惠活動點擊進入

          2.騰訊云: 提供云服務器、云數據庫、云存儲、視頻與CDN、域名等服務。騰訊云各類產品的最新活動,優惠券領取點擊進入

          3.廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入

          鏈接: http://www.modern-decoration.com.cn/article/detial/298

          為什么你應該使用 Object.is() 進行相等性比較

          因此Javascript提供了三等運算符,三等運算符更加嚴格并且不會將操作數進行強制類型轉換。然而三等運算符也不是最好的解決方案,也存在問題

          javascript中object是什么?

          object是javascript中一個被我們經常使用的數據類型,而且JS中的所有對象都是繼承自Object對象的。下面本篇文章就來給大家簡單介紹一下javascript中的Object類型,希望對大家有所幫助。

          object 類型 和 字符串索引簽名類型的點屬性

          TypeScript 2.2 引入了一個新的 object 類型。它表示任何非基本類型。以下是 JS 的基本類型:string、boolean、number、bigint

          JS 輸出為 [object object] 是怎么回事?

          今天在學習ES6中的 Symbol 數據類型時,在寫demo時控制臺輸出為 Symbol[object object],當時有點疑惑,查閱了相關資料后搞清楚了其中的原因。在解釋之前,由于有些小伙伴可能還沒有接觸過ES

          js中valueOf和toString

          valueOf和toString是Object.prototype的方法。一般很少直接調用,但是在使用對象參與運算的時候就會調用這兩個方法了。我想大部分人都存在以下疑問:

          Object.create()分析及實現

          Object.create()方法的作用:創建一個新對象,使用現有的對象來提供新創建的對象的__proto__(會返回一個新對象,帶著指定的原型對象和屬性)。默認情況下,js中對象的隱式原型__proto__指向

          Object.defineProperty

          想到Object.defineProperty,首先不得不提到對象,對象是JavaScript的基礎,有一種常見的說法“JavaScript中萬物皆是對象”。這種說法其實并不那么準確,根據 JavaScript 對語言類型的分類

          js對象object

          訪問對象屬性的兩種方法:a:objectName.PropertyName 對象名.屬性名;This關鍵字:在普通函數下This指向的是window;對象的創建方法:通過對象字面量的形式創建對象

          Object.assign實現淺拷貝的原理

          什么是淺拷貝?淺拷貝就是創建一個新對象,這個對象有著原始對象屬性值的一份精確拷貝。淺拷貝Object.assign()是什么?主要將所有可枚舉屬性的值從一個或者多個數據源對象復制到目標對象,同時返回目標對象。

          Js中Object.freeze()方法

          Object.freeze() 方法可以凍結一個對象。一個被凍結的對象再也不能被修改;凍結了一個對象則不能向這個對象添加新的屬性,不能刪除已有屬性,不能修改該對象已有屬性的可枚舉性、可配置性、可寫性,以及不能修改已有屬性的值。

          fly63.com版權所有,內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网