学科分类
目录
JavaScript网页编程

原型对象

在JavaScript中,每个构造函数都有一个原型对象存在,这个原型对象通过构造函数的prototype属性来访问,示例代码如下。

function Person() {}          // 定义函数

console.log(Person.prototype);     // 输出结果:{constructor: ƒ}

console.log(typeof Person.prototype);  // 输出结果:object

在上述代码中,Person函数的prototype属性指向的对象就是Person的原型对象。

利用原型对象,可以实现为所有的实例对象共享实例方法,我们可以将实例方法定义在原型对象中,然后所有的实例方法就都可以访问原型对象的方法了。因此,原型对象其实就是所有实例对象的原型。下面我们通过代码演示原型对象的使用。

 1  function Person(uname) {

 2   this.uname = uname;

 3  }

 4  Person.prototype.sayHello = function() {

 5   console.log('你好,我叫' + this.uname);

 6  };

 7  var p1 = new Person('张三');

 8  var p2 = new Person('李四');

 9  console.log(p1.sayHello === p2.sayHello);  // 输出结果:true

 10 p1.sayHello();   // 输出结果:你好,我叫张三

 11 p2.sayHello();   // 输出结果:你好,我叫李四

从上述代码可以看出,实例对象p1和p2原本没有sayHello()方法,但是在为原型对象添加了sayHello()方法以后,p1和p2就都拥有了sayHello()方法,并且是同一个方法。在原型对象的方法中,this表示的是调用此方法的实例对象。

点击此处
隐藏目录