JS高级—07—对象;原型;原型链;js继承如何实现;
一、对象
1.1概念
1.2定义对象的两种方式
除了这两种,还可以使用new 构造函数或
new 构造函数+原型;
1.3对对象属性的控制之数据属性描述符
当我们直接在一个对象上定义某个属性时: 指这种方式: const obj ={ name:"kobe" }
当我们通过属性描述符定义一个属性时: 指这种方式: Object.defineProperty = { obj, "age", { 18 } }
1.4对对象属性的控制之存取属性描述符
可以像闭包一样的,定义对象的私有属性;
1.5同时定义多个属性
1.6对象的其他方法
有一些属性不能从forin或者object.keys()获取,因为他们的enumable属性设为false,
这个时候只能用getOwnPropertyDescritors方法来获取;
数据的增删改查
preventExtensions,不能添加新的属性;
seal:不能添加新的属性外,还不能修改原有属性,还不能删除原有属性;
freeze:不能添加新的属性外,还不能修改原有属性,还不能删除原有属性;还不能修改原有属性的value;
二、函数与构造函数
当我们new一个函数的时候,这个函数就是构造函数,一般默认将构造函数名大写;
我们现在可以通过构造函数来创建一个原型;
后面学习了原型后,我们可以通过构造函数+原型的方式更好的创建对象;