Javascript中对象属性和对象属性有什么区别?

时间:2016-06-24 15:36:30

标签: javascript

我在JavaScript中看到过两个与对象有关的术语,一个是属性,另一个是属性。这些术语有什么区别?

  

每个数据属性(存储数据的对象属性)不仅具有名称 - 值对,还具有3个属性(默认情况下,这三个属性设置为true):

     
      
  • 可配置属性:指定是否可以删除或更改属性。
  •   
  • 可枚举:指定是否可以在for / in循环中返回属性。
  •   
  • 可写:指定是否可以更改属性。
  •   

原始背景:http://javascriptissexy.com/javascript-objects-in-detail/

3 个答案:

答案 0 :(得分:2)

什么是属性以及Javascript中的属性是什么?

一般来说,属性和属性都相同。两者都表示质量,在技术术语中键值对,So Key是属性/属性的名称,Value只是它的值。

有什么区别?

差异是上下文而非意义。

为什么使用两个术语?

因为即使Object的属性也可能具有属性,也称为属性。

Javascript中的Object属性是什么?

除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中的Object属性是什么?

对象中的所有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            
                   }

答案 1 :(得分:0)

在这种情况下,作者不是指对象的属性,而是指属性的属性(通知,如作者所述,“每个数据属性...... [有] 3属性“)。通过这个,他指的是属性本身的行为方式,通常与内置对象有关。

作者是正确的,默认情况下,创建属性时,默认情况下所有三个属性都是true,只需按照以下方式分配属性:

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

或者像这样的对象文字表达式:

var obj = {foo:"bar"};

但是,作者没有提到您可以使用Object.defineProperty方法来修改这些属性。 MDN有几个例子说明了实际意义上的属性含义。

答案 2 :(得分:0)

属性是被观察对象的附加元素。

属性是被观察对象的特征,是它的一部分。

在javascript中,这些是可以互换的