SOURCE

// 函数2

function Person(name)
{
    this.name = name;   //设置对象属性,每个对象各自一份属性数据
};

Person.prototype.SayHello = function()  //给Person函数的prototype添加SayHello方法。
{
    alert("Hello, I'm " + this.name);
}

var BillGates = new Person("Bill Gates");   //创建BillGates对象
var SteveJobs = new Person("Steve Jobs");   //创建SteveJobs对象

BillGates.SayHello();   //通过BillGates对象直接调用到SayHello方法
SteveJobs.SayHello();   //通过SteveJobs对象直接调用到SayHello方法

// alert(BillGates.SayHello == SteveJobs.SayHello); //因为两个对象是共享prototype的SayHello,所以显示:true

// 程序运行的结果表明,构造函数的prototype上定义的方法确实可以通过对象直接调用到,而且代码是共享的。
// 显然,把方法设置到prototype的 写法显得优雅多了,尽管调用形式没有变,但逻辑上却体现了方法与类的关系,相对前面的写法,
// 更容易理解和组织代码。
console 命令行工具 X clear

                    
>
console