原型成员:原型对象上的属性或者是方法。
实例成员:实例对象上的属性或者方法。
静态成员:直接添加在构造函数上的属性和方法。(所谓直接添加并不是指本来就已经构造函数内部存在的属性,而是在函数外部通过点方法添加的属性或者方法。这里的静态成员是指A.age和A.showAge)
构造函数的函数,函数是一个对象,所以可以给函数添加属性或者方法
具体的表示形式例如:
function A(){
this.name="Mo Mo"
}
A.age='22';
A.showAge=fucntion(){
console.log(this.age)
}
构造函数实例出来的对象,是不能直接访问构造函数上的属性和方法的。
object是一个内置的构造函数。上面的主要静态成员分别是:
01 object.arguments :
02 Object.assign 拷贝多个对象的属性
03 Object.caller :
04 Object.create 创建对象并且设置原型对象
05 Object.defineProperties 定义多个属性(?)
06 Object.getOwnPropertyDescriptor 获得对象中指 定属性的描述信息(对象)
configurable:配置(删除)
enumerable:枚举(遍历)
value:值
writable:重写(修改)
默认.自己添加的属性是可以配置,可以枚举,也可以重写的
07 Object.defineProperty 定义属性,设置属性的描述信息
可以设置属性的描述对象(控制让属性不可以被删除,不可以被枚举,不可以被修改)
08 Object.entries :返回键值对数组
09 Object.getOwnPropertyNames 获取实例属性的名称(所有的key) 不论是否可以被枚举
10 Object.getPrototypeOf 获得某个对象的原型对象
11 Object.is : 进行严格比较(new)
12 Object.keys:获得所有的key 可以枚举的
13 Object.setPrototypeOf :设置原型对象
14 Object.values 获得所有的属性值
15 Object.preventExtensions 禁止扩展对象
不能给对象添加方法或者是属性
16 Object.isExtensible 检查对象是否可以扩展
17 Object.seal 密封对象,不能删除和配置对象 + 不能扩展
18 Object.isSealed 检查对象是否是密封对象
19 Object.freeze 冻结对象,不能删除和配置 + 不能扩展 + 不能修改
20 Object.isFrozen