prototype - 关于JavaScript的原型继承,求验证图片是否正确
高洛峰
高洛峰 2017-04-10 15:10:50
0
4
206

首先明确:

1、任何对象都有属性[[Prototype]];

2、只有函数有属性prototype。

代码如下:

// 父类构造函数 function Pet(name,sound){ var name = name; this.sound = "Pet says " + sound; this.getName = function(){ console.log(name); }; } // 父类原型 Pet.prototype.voice = function(){ console.log(this.sound); } // 子类 function Dog(sound){ this.sound = "Dog syas " + sound; } // 继承 Dog.prototype = new Pet("pet","ohooo"); Dog.prototype.constructor = Dog; // 继承验证 var dog = new Dog("wangwang"); dog.voice();//Dog syas wangwang dog.getName();//pet
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信 (4)
迷茫

最左侧的Function应该改成Function.prototype或是Function.[[Prototype]]Function比较特殊,它的这两个属性指向同一个对象

いいねを押す+0
    大家讲道理

    正确(凑字数)

    いいねを押す+0
      小葫芦

      最左侧的Function应该改成Function.prototype 或是 Function.[[Prototype]] Function 比较特殊,它的这两个属性指向同一个对象 -- @zonxin

      同理,右边的Object应该是Object.prototype

      图片来源


      jsfunction Pet(){} var p = new Pet(); p.__proto__ === Pet.prototype; Pet.__proto__ === Function.prototype; Pet.prototye.__proto__ === Object.prototype Function.__proto__ === Function.prototype; Object.__proto__ === Function.prototype; Function.prototype.__proto__ === Object.prototype Object.prototype.isPrototypeOf(Function.prototype); Function.prototype.name === 'Empty'
      いいねを押す+0
        Peter_Zhu

        修正一个小错误,对象也可以有 prototype属性哈

        いいねを押す+0
          最新のダウンロード
          詳細>
          ウェブエフェクト
          公式サイト
          サイト素材
          フロントエンドテンプレート
          私たちについて 免責事項 Sitemap
          PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!