node.js依赖的 JavaScript基础 继承 和异常处理

文章标签: node.js
2014-12-12 18:13:45     9 人阅读    

继承
JavaScript有基于原型的继承的特点。通常,你可以通过以下方式来模拟类继承。
定义一个要继承自Animal的构造器:

function Ferret () { };
要定义继承链,首先创建一个Animal对象,然后将其赋值给Ferret.prototype。
//实现继承
Ferret.orototvne = new Animal():
随后,可以为子类定义属性和方法:
//为所有ferrets实例定义type属性


Ferret.prototype.type = 1 domestic1;
还可以通过prototype来重写和调用父类函数:
Ferret.prototype.eat = function (food) {
Animal.prototype.eat.call(this, food);
// ferret特有的逻辑写在这里
>

这项技术很赞。它是同类方案中最好的(相比其他函数式技巧),而且它不会破坏 instanceof操作符的结果:

var animal = new Animal{); animal instanceof Animal ll true animal instanceof Ferret // false
var ferret = new Ferret{); ferret instanceof Animal // true ferret instanceof Ferret // true

它最大的不足就是声明继承的时候创建的对象总要进行初始化(Ferret.prototype = new Ani^l),这种方式不好。一种解决该问题的方法就是在构造器中添加判断条件:

function Animal (a) { if (false i== a) return;
//初始化
Ferret.prototype = new Animal(false)
} function f () {};
f.prototype = Animal.prototype;
Ferret.prototype = new f;

幸运的是,V8提供了更简洁的解决方案,本章后续部分会做介绍。

try/catch

try/catch允许进行异常捕获。下述代码会抛出异常:
var a = 5;
a()
TypeError: Property 'a' of object #<Object> is not a function

当函数抛出错误时,代码就停止执行了:


 

function () {
throw new Error('hi');
console. log (■ hi ■);//这里永远不会被执行到
}

若使用try/catch则可以进行错误处理,并让代码继续执行下去:

function () { var a = 5; try { a();
} catch (e) {
e instanceof Error; //true
}
console.log('you got here!');
}


原文地址:http://www.itmmd.com/201412/307.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android学习笔记(21)图像视固(Image View )的功能和用法   上一篇
下一篇  产品经理学习笔记(9)-产品经理离用户有多远

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!