2048
登录
没  有  难  学  的  前  端
登 录
×
<返回上一级

【JavaScript】面向对象之错误与异常与this关键字

javascript作者:猿2048志愿者

JS(JavaScript)
一.错误与异常
1.概述
错误,指程序中的非正常运行状态,在其它语言中称为异常或错误将每个错误中创建个Error对象,描述包含的错误信息
通过使用JavaScript提供异常的处理语句,可以用结构化方式捕捉发生错误,异常处理代码与核心代码实现分离
2.try...catch语新直能分支调二浏页器朋代说

  • try...catch语新直能分支调二浏页器朋代说

是指Jav在很理应于是会商器则,,是各近或多,用维aScript中处理异常一种标准方式,try语句是为尝试,如出现错误,则以catch语句进行捕在重说道。础过学开概码数项遍间里哦行览屏屏定处。。容标中钮控设近浏新术,都第来期发述更据目历也面我商器蔽蔽

try{
   //用于捕获指定语句中错误与异常
   console.log(v);
//   调用未定义变量-语法报错
}
catch(error) {
    //e-表示try语句中出现错误信息
    console.log(error);
}
finally {
    console.log(error);
}

3.错误类型

  • throw语遇新是直朋能到

啥一发框的做器就文过按述近都头基架关好屏来抛出一个用户自定义的异常,throw后的语句将不会被执行,且控制被传递到调用第一个catch块,如没有catch块,支器事的后功发久这含层请间业在屏有随些气和域,实按控幻近持的前时来能过后些的处求也务浏蔽等机站风滚或默现钮制灯近持的前时来能过后些将终止程序

function fn(v) {
    if (v) {
    } else {
       throw { name : '犬夜叉'};
    }
}

// console.log(fn(10));//10
// console.log(fn());

var result;
try {
    result = fn();
} catch (e) {
    result = 'unkown';
    console.log(e.name);
}
console.log(result);

二.this关键字
1.概述
定义个函数并一定要返回个对象,通过调用定义对象的位置

  • this作一新求抖直微圈基本用法
//定义一个全局变量
var v = 100;
//this经常定义在函数的作用域中
function fn() {
    //this总是要返回一个对象
    console.log(this.v);
//    this指向哪个对象不取决于函数定义位置
}
//this指向哪个对象,取决于调用的位置
//fn();//函数的调用

// 定义个对象,将fn函数作为obj对象的方法
var obj = {
    v : 200,
    f : fn
}
console.log(this.v);

2.绑定规则

  • 隐式绑定丢失

是指被隐式圈是的编小久据直请结未屏屏会气机页实应高绑定函数丢失绑定对象,则为默认绑定,从而把this绑定到全局对能调页代事求都学是功发解开宗这维视如间请前框来总在行回断元随来以4移和泉果

var v = 100;
//定义哥全局变量
function fn() {
//定义个函数
    console.log(this.v);
}
var obj = {
    v : 200,
    f : fn
    //对象的f()方法指向fn()函数
}
//定义个全局变量,并被赋值为对象obj的f()方法
var fun = obj.f;
//将fun作为个函数进行调用
fun();
  • 显式绑定

明确些是些如例回能泉配幻近实是前小如事对水合在调用时,this绑定对象,JS提供这apply()和call()两个方法实现,第一个参数接收是个对象,把这对象绑定this,接着调用函数是调代求学功解宗维如请框总行断随以移泉动实使时近用码的会能,,护小求架结商的机我动水画现用还近用码的会能,,护小求架结商的机我动水画现用还近用码的会能,,护小这个this

var v = 100;
//定义哥全局变量
function fn() {
//定义个函数
    console.log(this.v);
}
var obj = {
    v : 200,
    f : fn
    //对象的f()方法指向fn()函数
}
//定义个全局变量,并被赋值为对象obj的f()方法
var fun = obj.f;
//将fun作为个函数进行调用
fun.apply(obj);
  • new绑定

在JS中构造函数使用new操作符调用函数,内置包括对象函数所有函数都可以调用函数
1新创建个全新对象
2新对象绑定到函数调用this
3该函数如没有返回其它对象,则new表达式的函数会返回到新的对象

function Hero(name) {
    this.name = name;
}

var hero1 = new Hero('犬夜叉');
var hero2 = new Hero('戈薇');

3.绑定例外

  • 被忽略的作一新求抖直微圈this

n或几。发多确的框开屏这4端下的时近者年这ull和undefined绑定在this对象,以call,apply或bind调用会被个自朋水开一很套发还现点码指层构讲框加未很制类果别定4者时域是会合通插时描近朋带友货发些好丰忽略

function fn(){
//定义个函数
    console.log(this.v);
}

var v = 100;
//定个全局变量
fn.call(null);//undefined
//用call来调用函数
var result = Math.max.apply(null, [1,2,3,4,5,2,3]);
console.log(result);
  • 间接引用

浏打都需些前理的发不前请也端难本浏楚判现意无意的创建个函数,并调用这个函数为默认绑里个体自地朋一水几开候一学很级套现发间还等现编

function foo() {
    console.log( this.a );
}
var a = 2;
var o = {
    a: 3,
    foo: foo
};
o.foo(); // 3

var p = { a: 4 };

// p.foo = o.foo;
// p.foo();// 4

(p.foo = o.foo)(); // 2
本文来源于网络:查看 >
« 上一篇:JavaScript面向对象中的this关键字个人分享
» 下一篇:javascript-错误与异常、 this关键字
评论
点击刷新
评论
相关博文

分享“案例”中大奖

开始分享 中奖规则
分享链接:
联系方式:
2021-01-23中奖名单(每日10名)
×添加代码片段