在JavaScript内部,对象的属性和方法追溯机制是通过所谓的prototype链来实现的。当用new操作符构造对象时,也会同时将构造函数的prototype对象指派给新创建的对象,成为该对象内置的原型对象。对象内置的原型对象应该是对外不可见的问题描述 :上面这句话 不能理解什么意思
还有下面的第17行代码,也理解不了!1 function Person(name) //基类构造函数 2 { 3 this.name = name; 4 }; 5 6 Person.prototype.SayHello = function() //给基类构造函数的prototype添加方法 7 { 8 alert("Hello, I'm " + this.name); 9 };10 11 function Employee(name, salary) //子类构造函数12 {13 Person.call(this, name); //调用基类构造函数14 this.salary = salary;15 };16 17 Employee.prototype = new Person(); //建一个基类的对象作为子类原型的原型,这里很有意思18 19 Employee.prototype.ShowMeTheMoney = function() //给子类添构造函数的prototype添加方法20 {21 alert(this.name + " $" + this.salary);22 };23 24 var BillGates = new Person("Bill Gates"); //创建基类Person的BillGates对象25 var SteveJobs = new Employee("Steve Jobs", 1234); //创建子类Employee的SteveJobs对象26 27 BillGates.SayHello(); //通过对象直接调用到prototype的方法28 SteveJobs.SayHello(); //通过子类对象直接调用基类prototype的方法,关注!29 SteveJobs.ShowMeTheMoney(); //通过子类对象直接调用子类prototype的方法30 31 alert(BillGates.SayHello == SteveJobs.SayHello); //显示:true,表明prototype的方法是共享的
添加回答
举报
0/150
提交
取消