首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScript中的多态性自定义对象形状

使用JavaScript中的多态性自定义对象形状
EN

Code Review用户
提问于 2017-11-29 12:05:05
回答 1查看 574关注 0票数 3

我已经做了以下示例,并想知道它是否正确地表示了JavaScript中的多态性。

代码语言:javascript
复制
var customShape = function(){
    this.sides = 4;
    this.length = 5;
    this.perimeter = 4 * this.length; 
};

customShape.prototype.noOfSides = function(){
    return ("Total No of Sides = " + 4);
}

var rect = new customShape();
var square = new customShape();
var triangle = new customShape();
triangle.noOfSides = function(){
    return ("Total No of Sides = " + 3);
}

console.log(rect.noOfSides());
console.log(square.noOfSides());
console.log(triangle.noOfSides());

我的目的是创建一个函数noOfSides(),它适用于不同的对象。

参考文献:

  1. 多态性是什么,它是用来做什么的,它是如何使用的?
  2. 什么是多态?用一个例子来解释?
  3. Javascript中的多态性是什么?
  4. 基本javascript继承和多态性
EN

回答 1

Code Review用户

发布于 2017-12-02 01:38:24

您的代码片段接近于演示多态性,但是对noOfSides()的调用没有一个是多态的。

代码语言:javascript
复制
console.log(rect.noOfSides());
console.log(square.noOfSides());
console.log(triangle.noOfSides());

rect只有一个形状,所以rect.noOfSides()总是用四个边调用相同的方法。squaretriangle也是如此。

对于多态性,我们需要多形性的东西,给它一个以上的形状,就像一个变量,可以是一个矩形或三角形。

代码语言:javascript
复制
var polylog = function(s) {
    console.log(s.noOfSides());
};
polylog(rect);
polylog(square);
polylog(triangle);

polylog中,参数s可以有两种不同的形状;它从4边形状到3边形状的多形性,因此s.noOfSides()可以调用两个不同的函数。这说明了多态。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/181576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档