- function Person (sex){
-     this.sex = sex;
- }
- Person.prototype.name = 'xiaoming';
- Person.prototype.sayName = function(){
-     console.log(this.name)
- };
- let person1 = new Person('man');
- person1.age = 24;
- person1.job = 'chengxuyuan';
- Object.defineProperty(person1, "height", {value:185, enumerable:false});
- //Object.keys() 返回一个数组,包含对象自身及构造函数的所有可枚举属性,不包含原型上的属性(不含Symbol属性)
- Object.keys(person1).forEach(key=>{
-     console.log(key,person1[key])
- })
- //sex man
- //age 24
- //job chengxuyuan
- //for..in.. 遍历包含对象自身及构造函数和原型上的所有可枚举属性(不含Symbol属性)
- for(let key in person1){
-     console.log(key,person1[key])
- }
- //sex man
- // age 24
- // job chengxuyuan
- // name xiaoming
- // sayName [Function]
- //Object.getOwnPropertyNames() 返回一个数组,包含对象自身及构造函数的所有属性(包括可枚举的和不可枚举的,不包含Symbbol属性),不包含原型上的属性
- Object.getOwnPropertyNames(person1).forEach(key=>{
-     console.log(key,person1[key])
- })
- // sex man
- // age 24
- // job chengxuyuan
- // height 185
- console.log(Object.getOwnPropertyNames(Person.prototype),'ad')
- //[ 'constructor', 'name', 'sayName' ] ad
- //person1.constructor 指向Peron
- console.log(person1.constructor) //[Function: Person]