object

时间:2023-03-08 21:26:59
  1. object对象

    定义一个对象

 var obj = {};
obj.name = 'Kate';
var obj = {name:'Jerrt'}; var obj = new Object(); Object.defineProperty(obj,'age',{
  configurable: //是否可配置、删除、修改;默认是false
  writable: //是否可编辑 若config是false writable无意义
  enumerable: //是否可枚举
  value: //属性对应的value值
  get、set: //此两项不能和writable、value同时出现
})

  2.  function对象

  • prototype属性
  • function对象的继承
 function Person(name,age){
this.age = age;
this.name = name;
}
Person.prototype = {
eat : function(food){
console.log(this.name + '爱吃' + food);
},
sleep : function(){
console.log(this.name + '每天睡觉8小时');
}
}
Person.prototype.constructor = Person; var jack = new Person('jack',18);
jack.eat('蛋炒饭'); function Student(name,age){
Person.call(this,name,age);
} Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;
var mike = new Student('mike',19);
mike.eat = function('冰淇淋'){
console.log('冰淇淋')
};

原型链的查找方法 调用一个属性或方法的时候 会现在实例化的对象上查找
如果找不到 会去原型上查找 一直到找到为止

  • call,apply方法的区别

  1. apply需要的参数 第一个this 第二个调用的方法的参数数组
  2. call 第一个参数this 后面跟上所有的参数 用,分割

  • Object的扩展方法

  1. Object.keys(对象名) //列出指定对象的属性名
  2. Object.seal //密封 writable变成false
  3. Object.freeze //冻结 configurable和writable都为false
  4. Object.create //创建一个新对象
  5. Object.preventExtensions //禁止扩展
  6. Object.getOwnPropertyDescriptor(对象名,属性名) //获取指定对象的某一个描述信息
  7. Object.defineProperties()//创建多个属性 用{}隔开
  8. 判断是否被密封 是否被冻结 是否可扩展