2012-02-08 83 views
3

我新使用JavaScript的oo概念。 从ejohn.org简单继承Javascript简单的继承方法

标准原型继承

function Person(){} 
function Ninja(){} 
Ninja.prototype = new Person(); 
// Allows for instanceof to work: 
(new Ninja()) instanceof Person 

从网站声明超过上述

什么是这个具有挑战性的,不过,是我们真正想要的是的 好处'instanceof',而不是实例化Person对象并运行其构造函数的全部成本。为了抵消这个问题,我们在我们的代码中有一个变量 ,初始化,当我们想要实例化一个类时,它被设置为true,其唯一目的是用于 原型。

以上声明是什么意思?

john-resig简单继承优于标准原型继承的所有优点是什么?

var fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/ 

上面这个测试是什么?

任何人都可以解释自执行功能的流程吗?虽然代码注释我不能跟着流

回答

2

这意味着,我们可以实例化一个类使用instanceof,而不必调用它的虚假构造函数init

Fredprovides an answer你的第二个查询...

的XYZ测试确定浏览器是否可以检查功能的文本 体。如果可以的话,如果它实际上在本体的某个地方调用this._super() ,则可以仅通过包装重写的方法执行优化。由于它需要额外的关闭和 函数调用开销来支持_super,所以如果不需要,跳过 是很好的。