我有这个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'));
提醒类shape
或TwoDShape
的名称,但我无法成功显示
class.name 为什么?
最佳答案
首先,您的代码中没有函数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/