我在JavaScript中看到过两个与对象有关的术语,一个是属性,另一个是属性。这些术语有什么区别?
每个数据属性(存储数据的对象属性)不仅具有名称 - 值对,还具有3个属性(默认情况下,这三个属性设置为true):
- 可配置属性:指定是否可以删除或更改属性。
- 可枚举:指定是否可以在for / in循环中返回属性。
- 可写:指定是否可以更改属性。
原始背景:http://javascriptissexy.com/javascript-objects-in-detail/
答案 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中,这些是可以互换的