ITPub博客

首页 > 应用开发 > Java > JavaScript 原型及原型链

JavaScript 原型及原型链

原创 Java 作者:20170405 时间:2020-08-05 16:07:56 0 删除 编辑

  原型对象

  原型对象:我们创建的每个函数都会有一个 prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象就是通过调用构造函数而创建的那个对象实例的原型对象。

  简单来说,无论什么时候,只要创建一个新的函数,就会为该函数创建一个prototype属性,这个属性指向函数的原型对象。

  // 构造函数 Person

  function Person() {

  };

  // 原型添加属性

  Person.prototype.name = 'Tom';

  Person.prototype.sayName = function () {

  alert(this.name);

  };

  // 创建实例

  var person1 = new Person();

  person1.sayName(); // Tom

  // prototype属性指向函数的原型对象

  console.log(Person.prototype); // {name: "Tom", sayName: ƒ, constructor: ƒ}

  123456789101112131415161718

  原型对象的用途:包含可以由特定类型的所有实例共享的属性和方法。

  使用原型对象的好处:可以让所有实例共享它所包含的属性和方法。

  constructor:所有的原型对象都会有一个constructor属性,这个属性是一个指向prototype属性所在函数的指针,也就是指向与之关联的构造函数。

  // constructor属性指向与之关联的构 造函数   郑州祛胎记治疗价钱 http://www.zykdbhk

  console.log(Person.prototype.constructor); // ƒ Person() { }

  console.log( Person.prototype.constructor === Person ); // true

  __proto__:当调用构造函数创建一个新实例后,该实例内部将包含一个指针__proto__,指向构造函数的原型对象。__proto__属性存在于实例与构造函数的原型对象之间。

  // __proto__属性指向该构造函数的原型对象

  console.log( person1.__proto__ ); // {name: "Tom", sayName: ƒ, constructor: ƒ}

  console.log( person1.__proto__ === Person.prototype ); // true

  


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979119/viewspace-2709500/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-07-14

  • 博文量
    63
  • 访问量
    39790