使用JavaScript进行面向对象开发 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

通过原型扩展已有类型

我们不难发现,JavaScript原型定义成员的方法和我们平时使用Java、C#、VB等语法结构不同。大部分语言是要将成员定义写在类型定义域内部的,而JavaScript是写在外部的。

function worker(name,age){
    //some code here
} //类型定义结束

worker.prototype.startWork = function(){
    //some code here
};

这种特殊的语法结构允许我们可以扩展和修改已有的类型,比如StringDate等。

比如,根据浏览器不同,不是所有JavaScript中的String都支持startWith这样的方法,那么我们可以自己实现一个

String.prototype.startWith = function(str){
    return this.indexOf(str) == 0;
};

var str = "Hello World!";
document.write(str.startWith("Hello"));        //true
试试看再给String扩展一个endWith的方法。