IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Day09_JavaScript课堂笔记 -> 正文阅读

[JavaScript知识库]Day09_JavaScript课堂笔记

Day09 JavaScript 笔记

1 回顾

1.1 构造函数

1. 构造函数的概念
2. 构造函数和对象的关系
   构造函数是对象的描述,对象是构造函数的实例
3. 判断对象是否是构造函数的实例 
   运算符 instanceof
   属性 constructor
4. 自定义构造函数
5. 实例化构造函数 new
6. 原始类型数据的对象特性
   Number、String、Boolean
   
   var num = 100;
   100.constructor;
   /*
   var obj = new Number();
   obj.constructor;
   销毁 obj
  */

1.2 this 的指向

1. this 的概念
   this 是系统定义好的变量,值设置好的
   一般在函数中使用
   
2. this 的指向
   构造函数中: this的值是构造出来的实例
   函数中: 谁调用该函数,this指向谁
   
3. window
   ① window 是全局对象
   ② 所有的全局变量就是window的属性
   ③ 使用window的属性或方法可以省略window

2 原型

2.1 原型的概念

1. 每个对象都有一个原型,原型也是一个对象。
2. 对象可以使用原型上的属性和方法。(继承)

2.2 如何获取对象的原型

① 通过对象本身直接获取

对象.__proto__

② 通过对象的构造函数获取

对象的构造函数.prototype

2.3 对象、构造函数、原型之间的关系

① 对象和构造函数

1. 对象是构造函数的实例,构造函数是对象的描述。
2. 一个构造函数可以对应多个对象,一个对象只有一个构造函数。

② 对象和原型

1. 对象可以继承原型上的属性和方法。
2. 一个对象只能有一个原型,多个对象的可以指向同一个原型。

③ 构造函数和原型

1. 通过构造函数的prototype属性可以获取到对象的原型。
2. 对象构造函数相同,原型也相同。

2.4 自定义构造函数时原型的应用

// 自定义构造函数
function User(name, address) {
    // 给构造函数实例设置属性
    this.name = name;
    this.address = address;
}

// 在实例的原型上设置方法
User.prototype.addShopcart = function() {
    console.log(this.name + '将商品加入购物车!');
};
User.prototype.buy = function() {
    console.log(this.name + '购买了商品,请邮寄到' + this.address);
};

2.5 判断属性是否属于对象本身

对象.hasOwnProperty('属性名');
方法返回布尔值,只有要判断的属性是对象本身所具有的才返回true,其他(在原型上或者不存在)返回 false

2.6 创建对象的同时指定原型

// 创建对象并将原型指向对象a
Object.create(对象a)

// 创建没有原型的对象
Object.create(null);

3 原型链

3.1 原型链的概念

1. 对象的原型还是对象,原型也有原型,构成了原型链。
2. 原型链最终到达一个顶层原型对象(顶层原型对象是一个没有原型的对象)。

3.2 属性查找过程

1. 当使用对象中某个属性的时候,先从对象本查找,如果有就使用,没有继续从对象的原型上查找
2. 沿着原型链向上查找,从哪里找到在哪里停止,一直到顶层原型对象
3. 如果原型链上没有该属性,自动得到 undefined

3.3 构造函数和原型链

1. 默认情况下,所有对象的原型链的顶层,都是 Object.prototype
2、 Array.prototype、Function.prototype、Number.prototype、String.prototype、Boolean.prototype、自定义构造函数.prototype 都是 Object 的实例
3、函数类型的对象既有 __proto__ 属性,又有 prototype 属性; 其他类型的对象只有 __proto__ 属性。
  函数.__proto__ 指向自己的原型; 函数.protptype 指向实例的原型。
4、Function 是一个特殊的存在, Function 的构造函数是 Function 本身
  Function.__proto__ === Function.prototype

函数.__proto__ 称为函数的隐式原型,表示自己的原型。

函数.prototype 称为函数的显示原型,表示实例的原型。

4 值类型和引用类型

4.1 值类型和引用类型的概念

值类型: 原始类型的数据,也叫值类型。

引用类型: 对象类型的数据,也叫引用类型。

4.2 值类型和引用类型的存储方式

值类型: 数据可以直接存储在栈结构中。

引用类型: 栈结构存储的是地址,堆结构中存储的是数据。

值传递: 变量a赋值给变量b,如果传递的是值(数据),称为值传递。

引用传递: 变量a赋值给变量b,如果传递的是地址(引用),称为引用传递。

值传递和引用传递场景: ① 变量赋值; ② 实参给形参赋值

4.3 不可变类型和可变类型

不可变类型: 原始类型、值类型也称为不可变类型。数据是一个整体,无法修改其中的一部分。

可变类型: 对象类型、引用类型也称为可变类型。数据是一个集合,可以修改其中的一部分。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:49:53  更:2021-09-01 11:52:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:07:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码