js原型模式

Posted 与非朋仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js原型模式相关的知识,希望对你有一定的参考价值。

name属性要么是直接在对象上访问到的,要么是通过原型访问到的。因此调用name in person始终都返回true,无论该属性存在于实例还是存在于原型中。hasOwnProperty()只有在实例中才会返回true。

  function hasPrototypeProperty(object, name){

  return !object.hasOwnProperty(name) && (name in object);

}

如果函数返回真,说明原型中有这个属性。否则说明属性在实例中,或者不存在此属性。

function Person(){

  Person.prototype.name = "Nicholas";

  Person.prototype.sayname = function(){

  alert(this.name);

  }

}

var persion = new person();

alert(hasPrototypeProperty(person,name));//true

person.name = "xupen";

alert(hasPrototypeProperty(person,name));//false

以上是关于js原型模式的主要内容,如果未能解决你的问题,请参考以下文章

js设计模式-原型模式

js中创建对象方式----原型模式

js之构造函数原型模式

JS面向对象基础讲解(工厂模式构造函数模式原型模式混合模式动态原型模式)

JS原型和继承

JS原型+原型链+设计模式