2016-06-24 127 views
0

我已經看到了兩個關於JavaScript中的對象的術語,一個是屬性和其他的是屬性。這些術語之間有什麼區別?Javascript中的對象屬性和對象屬性有什麼區別?

每個數據屬性(即存儲數據對象屬性)不僅具有名稱 - 值對,但是也3屬性(三個屬性默認設置爲true):

  • 可配置屬性:指定是否可以刪除或更改屬性。
  • 可枚舉數:指定是否可以在for/in循環中返回該屬性。
  • 可寫:指定是否可以更改屬性。

原始上下文:http://javascriptissexy.com/javascript-objects-in-detail/

+3

你能告訴我們一些情況下,你看到它?我猜他們在這種情況下是同義詞。 –

+3

這取決於確切的背景。 Html元素具有屬性(例如'document.getElementById(「foo」)。attributes'),但是如果作者引用普通的舊JavaScript對象(例如'{foo:bar}'),則它們是可互換的。 –

回答

0

在這種情況下,筆者是不是指一個對象的屬性,但財產(通知的屬性,正如作者指出,「每個數據屬性...... [有] 3個屬性「)。由此,他指的是屬性本身的行爲,通常是關於內置對象。

作者是正確的,所有的三個屬性是默認true時,您只需像這樣分配給它創建一個屬性:

var obj = {}; 
obj.foo = "bar"; 

或在對象文字表達式是這樣的:

var obj = {foo:"bar"}; 

但是,作者並未提及您可以使用Object.defineProperty方法來修改這些屬性。 MDN有幾個例子說明了實際條件下的屬性。

1

什麼是屬性和什麼屬性在Javascript中?

一般來說,屬性和屬性都相同。兩者均以技術術語表示質量鍵值對,因此,鍵是屬性/屬性的名稱,值不過是值。

有什麼區別?

區別不在於上下文的意思。

爲什麼使用兩個術語?

因爲即使一個對象的屬性可能有屬性,這就是所謂的屬性。

Javascript中對象的屬性是什麼?

除了Object的屬性外,Object還有三個屬性。 他們是原型擴展

例:

var SampleObject = { Name : "ObjName", id : "0"} // user created

實際對象的結構:

  var SampleObject = {class :someValue, // Attribute 
 
        prototype : someValue, // Attribute 
 
        extensible : someValue, // Attribute 
 
        Name : "ObjName", // Property 
 
        id : "0" // Property 
 
        }

Javascript中對象的屬性是什麼?

對象中的所有Key值對都是Object的屬性。

JavaScript中所有對象屬性的屬性是什麼?

對象的每個屬性都具有以下3個屬性。 可配置,可枚舉數可寫,這些值是布爾值。

//Ex : 
 
var SampleObject = { key1 :{ p1 : "v1"}} // user created 
 

 
//Actual Structure : 
 

 
var SampleObject = { class :someValue, // Attribute 
 
        prototype : someValue, // Attribute 
 
        extensible : someValue, // Attribute 
 
        key1 : { Configurable : true, // attribute 
 
           Enumerable : true, // attribute 
 
           Writable  : true // attribute 
 
           p1   : "v1" //property 
 
           }  // proeperty    
 
        }