面向对象语言的的特性就是有类(class)的概念,通过类可以创建任意多个具有相同属性或方法的对象,然而 javascript 中没有类(class)的概念,所以它不是真正的面向对象
对象
由N组键值对组合起来的无序属性顺序的结合,其属性值可以是任意类型。
//采用生成一个 Object 的实例来创建一个对象
var obj = new Object();
obj.name = "大毛";
obj.eat = function(){
console.log("吃鱼")
}
//采用字面量方式创建新对象
var obj = {
name: "大毛",
eat: function(){
console.log("吃鱼")
}
}
以上我我们利用 Object 的构造函数和字面量方式创建了单个对象,但,这种模式创建出来的对象有个明显的缺陷:
同一个接口创建多个对象,会有很多重复代码,那如何解决呢?带着这个问题,我们继续探究…
属性类型
数据属性
修改获取属性值时
- [[Configurable]] :是否能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,能够把属性改为访问器属性。能够直接在对象上定义的属性,默认值是true。
- [[Enumerable]] : 能否通过 for-in 循环返回属性。能够直接在对象上定义的属性,默认值是true