function Person(){
this.name='li'
}
Person.prototype.age=10;或者
Person.prototype={age:10}第二种会覆盖prototype的construct 但是prototype内的proto依然指向object的prototype,就算设置
Person.prototype=null,也会指向object的原型
而Object.create(null,{a:1})则创建了一个纯净的对象 不继承object的任何属性
Object等静态getOwnpropertynames 或者原型方法obj.hasOwnproperty都只能获取实例所有属性
for in可以获取其原型(包括object)上可枚举属性 普通对象无法用for of 必须伪装成类数组对象
Array Object等属性都是不可枚举的 就是阻止通过for in访问 可以设置Object.prototype.a=1就可以看见了
(今天读了继承,发现对象是可以改变原型链中的引用类型的,比如数组的push,但是任何直接赋值都会将属性添加到实例属性中)
!属性描述符通常都是默认true,用defineproperty时默认false
属性描述符 configurable,不可删除
writable 不可修改 enumerable 不可枚举
preventextension seal frozen
isextensible isseal isfrozen