为了账号安全,请及时绑定邮箱和手机立即绑定

javascript 里的 prototype 的问题

javascript 里的 prototype 的问题

一人我编程累 2017-12-09 20:57:35
在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的方法是共享的
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 958 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信