javascript - 如何提醒 Shape、TwoDShape 类的名称?

标签 javascript inheritance prototype

我有这个Demo哪个执行警报并且运行良好:

在代码下方。

var Shape = function(){};
var TwoDShape = function(){};
Shape.prototype.name = 'shape';
Shape.prototype.toString = function(){return this.name;};

alert('there is alert');​

当我添加此行时:extend(TwoDShape, Shape);

我无法执行警报,如您所见 Demo

在此之后我添加几行:

var my = new TwoDShape();
alert(my.toString());
alert(TwoDShape.prototype.name);
alert(my.hasOwnProperty('name'));

提醒类shapeTwoDShape的名称,但我无法成功显示 class.name 为什么?

here is the full code:

最佳答案

首先,您的代码中没有函数extend(),因此代码在那里遇到错误并停止运行。

所以我使用 jQuery 修复了它 $.extend() ,或者您可以自己编写 extend() (请参阅吉米的回答)。

其次,如果您希望所有 Shape/TwoDShape 实例都具有可以使用 toString() 访问的类 name,则需要扩展原型(prototype):

TwoDShape.prototype = $.extend(TwoDShape.prototype, Shape.prototype);

查看我创建的jsfiddle http://jsfiddle.net/4Bjjp/6/关于扩展原型(prototype)

关于javascript - 如何提醒 Shape、TwoDShape 类的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12509177/

相关文章:

internet-explorer - 通过 SignalR 在 IE 中缺少原型(prototype)方法

silverlight-3.0 - SketchFlow 原型(prototype)字体不显示

javascript - 在快速中间件中调用时,这在原型(prototype)函数中不起作用

javascript - 使用 pushState()/onpopstate 时,页面未通过 'back' 重新加载

javascript - 如何更改索引表达式的类型?即: c[k]

c++ - 从基指针向下转换为模板派生类型

c# - 覆盖 Equals 和 GetHashCode - 派生类中的默认实现

javascript - jquery 删除新行然后用 block 元素包装文本节点

javascript - 在 PHP 中从国家代码获取货币信息

c++ - 您可以通过继承访问 'promote' 规范,您可以访问 'demote' 规范吗?