vuvivian's blog

越努力,越幸运.

  1. 1. 定义
  2. 2. 用法
  3. 3. 注意
  4. 4. 由来

定义

prototype 属性允许您向对象添加属性和方法,Prototype 是全局属性,并适用于所有的 Javascript 对象。

用法

object.prototype.name=value

注意

prototype属性是函数所独有的,由于在js中一切皆对象,函数也不例外,故这并非和其定义相矛盾。

由来

所有的实例对象都可以继承构造函数中的属性和方法,但是,在同一个对象的实例之间却无法共享属性。如下代码:

1
2
3
4
5
6
7
8
9
10
11
function Animal(name,sex){
this.name = name;
this.sex = sex;
this.common = function(){
return "cannot speaking"
}
}

var dog = new Animal('wangwang','boy');
var cat = new Animal('miaomiao','girl');
console.log(dog.common===cat.common); // false

为了解决构造函数的对象实例之间无法共享属性的缺点,js提供了prototype属性。
如下代码:

1
2
3
4
5
6
7
8
9
10
function Animal(name,sex){
this.name = name;
this.sex = sex;
}
Animal.prototype.common=function(){
return "cannot speaking"
}
var dog = new Animal('wangwang','boy');
var cat = new Animal('miaomiao','girl');
console.log(dog.common===cat.common); // true
本文最后更新于 天前,文中所描述的信息可能已发生改变