JavaScript学习日志,对象...简记

2021/4/9 20:25:18

本文主要是介绍JavaScript学习日志,对象...简记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

对象

构造函数

  • 原型对象
    构造函数的原型对象,该对象在构造函数创建时自动存在。该对象的属性和函数是构造函数的默认属性和方法。构造函数中的属性是私有的,但是原型对象中的是共有的。原型对象内有一个默认的 constructor 属性,指向构造函数。

    实例化对象中默认存在一个__proto__属性,该属性指向构造函数的原型对象。

  • 对象属性的特征

    configurable:false,能否使用 delete、能否需改属性特性、或能否修改访问器属性、,false 为不可重新定义,默认值为 true

    enumerable:false,对象属性是否可通过 for-in 循环,flase 为不可循环,默认值为 true

    writable:false,对象属性是否可修改,flase 为不可修改,默认值为 true

    value:‘xiaoming’ 对象属性的默认值,默认值为 undefined

    Object.defineProperty 可以使用该方法给对象添加属性或者对已有的属性进行修改,并可以修改对象属性特征。

    例:

    Object.defineProperty(Person,"name",{
    value:"小明",
    configurable:false,
    writable:false,
    enumerable:false
    })
    
    • Object.hasOwnProPerty();用于检测该对象中是否含有该属性。
    • 先修改 configurable 在修改 writable 没有任何问题,反之,configurable 则不能被修改。

对象的继承

  1. 构造函数继承(此方法不太合适,不建议使用)
   		function SystemUser(name,age) {
           Person.call(this,name,age)
     }
     SystemUser.prototype=Person.prototype;
     SystemUser.prototype.constructor=SystemUser;
  1. 对象合并
  • Object.keys(对象名),拿到对象的属性名集合。
  • Object.assign(对象 1,对象 2,对象 3.。。。。。。。),将第一个对象后面的所有对象合并到第一个对象。重名的属性覆盖。
  • 借助 js 高级语法 …:将对象里的内容展开

    var obj={…obj1,…obj2},将两个对象合并到一起。

  1. 通过修改对象.prototype=对象,来实现继承效果
 例:
 function Animal(type) {
 this.type = type;
 }
 Animal.prototype.say = function () {
 console.log("我是" + this.type + "动物");
 };
 var CatAnimal = new Animal("猫科类");
function Cat(name, age) {
 this.name = name;
 this.age = age;
 }
Cat.prototype = CatAnimal;
 Cat.prototype.getName = function () {
 console.log("我的名字是" + this.name);
};
  • 注意:先继承之后在添加新的方法,否则添加的方法会被覆盖。


这篇关于JavaScript学习日志,对象...简记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程