博客列表 >JS一切皆对象

JS一切皆对象

饺子°的博客
饺子°的博客原创
2019年05月18日 17:13:081345浏览

一、为什么使用对象

  前端中,每一个变量、函数等的定义,都会在全局核心BOM(即Window)中创建一个实例,如下图所示

C3OM0G%NTQ6TC$Q2H9Q3{VF.png

SHWG[%]6{}}~1OZX)VQVFQX.png

L]T)NKZE7XP]F~]YUR{9REA.png

二、解决方案

  为了解决上面的情况,可以采用对象字面量的方法来定义,如下

实例

var stu = {
   course: 'JavaScript', // 属性
  grade: 70,  // 属性
  getInfo: function () {
      return this.course + '课程的成绩是: ' + this.grade;
  }
};

三、构造函数

  作用就是初始化对象属性

实例

var Stu = function (course, grade) {
    // 初始化对象属性
    this.course = course;
    this.grade = grade;
};

  注意:如果在构造函数中添加了方法,那么每一个成员都会共有这个方法,会出现冗余的现象,浪费空间

  为了解决“注意”中的问题,以下是解决方案:

    利用prototype原型属性:将所有实例对象所共享的成员, 应该定义在该实例的构造函数的原型对象属性中(即共享或者继承某一个变量或者函数)

实例

Stu.prototype.getInfo = function () {
    return this.course + '课程的成绩是: ' + this.grade;
};

  注意:

    Ⅰ Stu.prototype仍是一个对象

    Ⅱ 声明在原型属性中的属性或者方法会保存在对象的__proto__属性中,即生成了一个指向构造函数原型的指针

6[DLUP2CS$6MU{56B8MYV}2.png    访问这个方法:stu1.getInfo();

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议