javascript中的原型对象

来源:互联网 发布:淘宝用什么打折软件 编辑:程序博客网 时间:2024/05/20 04:31

取自javascript高级程序设计第三版
我们创建的每个函数,都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
换句话说,不必再构造函数中定义对象实力的信息,而是可以将这些信息直接添加到原型对象中,如下例

 function Person(){}    Person.prototype.name = "Lenerd"    Person.prototype.age=38    Person.prototype.sayName=function(){       alert(this.name)    }    var p=new Person;    var t=new Person;    console.log(Person.prototype)//{name: "Lenerd", age: 38, sayName: ƒ, constructor: ƒ}    console.log(t.__proto__==Person.prototype)//(2)true    alert(Person.prototype.isPrototypeOf(t))//(3)true    console.log(Person.prototype.isPrototypeOf(p)))//(4)true    console.log(p.hasOwnProperty("name"))//(5)false,自定义后,如p.name="ladygg"才是true
  1. Person.prototype.constructor指向Person
  2. 创建实例后,实例内部将包含一个指针proto,改指针指向构造函数的原型对象。
  3. 原型对象.isPrototypeOf()方法,确定对象间的关系。
  4. Object.getPrototypeOf(实例),返回原型对象
  5. 实例.hasOwnProperty(“属性”),判断该属性是否为原型属性

除了这些还有in操作符,无论是对象属性,还是原型对象属性:
alert(“name” in p)//true
还有hasPrototypeProperty(p,’name’)//true判断该属性是否继承自原型的属性。

原创粉丝点击