什么是对象?
对象和散列表在结构上很是相似都是键值对的集合。
对象的创建方法
传统的方法是使用new Object()方式。
然后,在程序的执行过程中,
动态地为其添加相关的静态属性和动态属性。
var obj = new Object();
obj.words="凡人皆有一死";
obj.house="风息堡";
obj.future = function() {
}
另一种就是采用字面量的方式:
var obj = {
words: "凡人皆有一死",
house: "风息堡",
future: function() {
}
}
JavaScipt中的属性【理解】
这个知识点很少用到,但是对于理解JavaScript的属性还是可以的。
在Java中对属性的限定或者说修饰有四种:
public, protected, private指明的属性的可见范围。
static指明了属性的作用域。
final指明了属性是否可以修改。
getter/setter指明了属性的读取。
Java中如此,在逻辑上JavaScript有些类似,但是不同点也有很多。
JavaScript中的属性分为数据属性和访问器属性。
首先来看数据属性,每一个数据属性都有4种特性,
configurable, enumerable, writable, value。
configurable: 属性是否可以delete。
enumerable: 是否可以通过for-in循环遍历属性。
writable能否修改属性的值。
value:存取属性的值。
由于以上属性默认都是true,
所以感觉不到限制,感觉不到限制,也就认识不了它。
突然发现自己写下了一个哲学意味浓厚的句子。
"感觉不到限制,感觉不到限制,也就认识不了它"。
属性特性的修改采用Object.defineProperty()方法。
比如:
Object.defineProperty(obj, "words", {
configurable: false,
writable: false;
})
传入三个参数,对象,对象中的属性,特性值对象。
这样设定了以后,words属性就不可以被删除,而且不可以
修改它的值,只能够查看它的值。
另一个属性是访问器属性
比如:
var person = {
username: "luohao",
_password: "china"
}
Object.defineProperty(person, "password", {
get: function() {
return _password;
},
set: function(password) {
this._password = password;
}
});
_password带有下划线,表示password是访问器属性。
验证了一下,发现有问题。
console.log(person.username);
console.log(person._password);
对象和散列表在结构上很是相似都是键值对的集合。
对象的创建方法
传统的方法是使用new Object()方式。
然后,在程序的执行过程中,
动态地为其添加相关的静态属性和动态属性。
var obj = new Object();
obj.words="凡人皆有一死";
obj.house="风息堡";
obj.future = function() {
}
另一种就是采用字面量的方式:
var obj = {
words: "凡人皆有一死",
house: "风息堡",
future: function() {
}
}
JavaScipt中的属性【理解】
这个知识点很少用到,但是对于理解JavaScript的属性还是可以的。
在Java中对属性的限定或者说修饰有四种:
public, protected, private指明的属性的可见范围。
static指明了属性的作用域。
final指明了属性是否可以修改。
getter/setter指明了属性的读取。
Java中如此,在逻辑上JavaScript有些类似,但是不同点也有很多。
JavaScript中的属性分为数据属性和访问器属性。
首先来看数据属性,每一个数据属性都有4种特性,
configurable, enumerable, writable, value。
configurable: 属性是否可以delete。
enumerable: 是否可以通过for-in循环遍历属性。
writable能否修改属性的值。
value:存取属性的值。
由于以上属性默认都是true,
所以感觉不到限制,感觉不到限制,也就认识不了它。
突然发现自己写下了一个哲学意味浓厚的句子。
"感觉不到限制,感觉不到限制,也就认识不了它"。
属性特性的修改采用Object.defineProperty()方法。
比如:
Object.defineProperty(obj, "words", {
configurable: false,
writable: false;
})
传入三个参数,对象,对象中的属性,特性值对象。
这样设定了以后,words属性就不可以被删除,而且不可以
修改它的值,只能够查看它的值。
另一个属性是访问器属性
比如:
var person = {
username: "luohao",
_password: "china"
}
Object.defineProperty(person, "password", {
get: function() {
return _password;
},
set: function(password) {
this._password = password;
}
});
_password带有下划线,表示password是访问器属性。
验证了一下,发现有问题。
console.log(person.username);
console.log(person._password);