在学习JavaScript的过程中,面向对象是必须要学会的课题。然而,网络上大部分文章只是简单地讲述如何通过代码实现面向对象,忽略了理论和原理方面的知识。本系列文章将从头开始逐步讲解面向对象编程思想及其在JavaScript中的实现与应用。
从一个简单的需求开始
假设我们需要在程序中计算各种形状的周长,代码可能是这样的:
var rectangle = {
name: '长方形1',
type: 'rectangle',
length: 5, // 长
width: 10 // 宽
};
var square = {
name: '正方形1',
type: 'square',
length: 5 // 边长
};
var circle = {
name: '圆形1',
type: 'circle',
radius: 5 // 半径
};
function computePerimeter(shape) {
var result;
switch (shape.type) {
case 'rectangle':
// 矩形周长:(长+宽)*2
result = (shape.length + shape.width) * 2;
break;
case 'square':
// 正方形周长:边长*4
result = shape.length * 4;
break;
case 'circle':
// 圆形周长:2*PI*半径
result = 2 * Math.PI * shape.radius;
break;
}
return shape.name + '的周长是' + result;
}