簡體   English   中英

如何提醒Shape,TwoDShape類的名稱?

[英]How can I alert name of the class Shape,TwoDShape?

我有這個演示哪個執行警報,它工作得很好:

代碼下方。

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

alert('there is alert');​

當我添加此行時: extend(TwoDShape, Shape);

我無法執行提醒,因為您可以看到演示

在此之后,我添加以下行:

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

提醒類shapeTwoDShape的名稱,但我無法成功顯示class.name為什么?

這是完整的代碼:

首先,代碼中沒有函數extend() ,因此代碼在那里遇到錯誤並停止運行。

因此,我使用jQuery $.extend()對其進行$.extend() ,或者您可以自己編寫extend() (請參閱吉米的答案)。

其次,如果希望所有Shape / TwoDShape實例都具有可使用toString()訪問的類name ,則需要擴展原型:

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

參見我在擴展原型上創建的jsfiddle http://jsfiddle.net/4Bjjp/6/

您的代碼中斷,因為extend功能不存在。 您必須實現自己的才能使其工作。 這是一個簡單的實現。

function extend(destination, source) {
  for (var key in source) {
    if(source.hasOwnProperty(key)) {
      destination[key] = source[key];
    }
  }

  return destination;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM