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知识库 -> JavaScript的面向对象编程(三) -> 正文阅读

[JavaScript知识库]JavaScript的面向对象编程(三)

this指向

1.分析this指向

函数中this指向,情况如下:

  1. 构造函数内部的this指向新创建的对象。
  2. 直接通过函数名调用函数时,this指向的是全局对象window
  3. 如果将函数作为对象的方法调用,this将会指向该对象。
 function Person(name){
    this.name = name;
}

var p1 = new Person("张三");

function foo(){
    return this;
}

var o = {
    name:"刘备",
    func:foo
}

foo()    //foo函数的this指向全局对象window

console.log(foo() === Window);    //结果为true

console.log(o.func());    //将foo函数作为对象o的函数进行调用,此时,foo函数中的this指向o

console.log(o.func() === o);    //结果为true

2.更改this指向

(1)apply()方法和call()方法

function method(){
    console.log(this.name);    //this指向全局对象window
}

//更改了method方法中this的指向:此时this指向对象{name:"张三"}
method.apply({name:"张三"})    

method.call({name:"李四"})

(2)apply()方法和call()方法的区别

function method(a,b){
    console.log(a + b);
}

method.apply({},["1","2"])    //结果为12

method.apply({},[1,2])    //结果为3
//说明apply()是以数组的方式传参


method.call({},1,2)    //结果为3
//method()是以参数的方式传参

(3)bind()方法

bind()方法:实现提前绑定的效果。在绑定时,还可以提前传入调用函数时的参数。

function method(a,b){
    console.log(this.name + a + b);
}

var name = "诸葛亮";    //全局变量,属于window

//将{name:"赵云"}对象绑定到method上,此时method方法中的this指向"赵云"
var test = method.bind({name:"赵云"},"3","4");    

method("1","2");    //全局调用,函数中的this指向window

test();    //输出结果为  赵云34

JavaScript的错误处理

1.如何进行错误处理

var o = {};
try {// 在try中编写可能出现错误的代码
  o.func();
  console.log('a');// 如果前面的代码出错,这行代码不会执行
} catch(e) {// 在catch中捕获错误,e表示错误对象
  console.log(e);
}
console.log('b'); // 如果错误已经被处理,这行代码会执行

2.抛出错误对象

try {
    var e1 = new Error("错误信息");
    throw e1;    //将错误对象e1抛出
} catch (error) {
    console.log(error.message);
    console.log(error === e1);
}

3.错误类型

在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:20:07  更:2022-02-28 15:22:40 
 
开发: 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/24 9:44:05-

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