綦江建设银行网站,.简述网站开发的流程,设计网站大全湖南岚鸿网站大全,新网站建设风格原型模式每个函数#xff08;准确说不是类、对象#xff09;都有一个prototype属性#xff0c;这个属性是一个指针#xff0c;指向一个对象。使用原型对象的好处是可以让所有对象实例共享它包含的属性和方法。1.原型对象#xff08;1#xff09;当创建一个新函数#xf…原型模式 每个函数准确说不是类、对象都有一个prototype属性这个属性是一个指针指向一个对象。 使用原型对象的好处是可以让所有对象实例共享它包含的属性和方法。 1.原型对象 1当创建一个新函数就会为该函数创建一个prototype属性这个属性指向函数的原型对象。 2默认情况下所有原型对象都会自动获得一个constructor构造函数属性这个属性包含一个指向 prototype属性所在函数 的指针。 3实例的内部包含一个指针叫[[Prototype]]。不过这个指针对脚本则完全不可见某些浏览器支持一种__proto__来访问。 2.代码读取属性顺序 首先搜索对象实例本身没有则继续搜索指针指向的原型对象。 例 function Person(){ } Person.prototype.nameJavascript; var p1 new Person(); var p2 new Person(); p1.namelufeng; alert(p1.name);//lufeng alert(p2.name);//Javascript 使用delete操作符可以完全删除实例属性。 isPrototypeOf()确定对象之间是否存在prototype关系 hasOwnProperty():检测一个属性是存在于实例中还是存在原型中。 Object.keys()、Object.getOwnPropertyNames()接收一个对象作为参数返回 一个包含所有可枚举属性的字符串数组。 来看个很蛋疼的类继承某个HTML5游戏框架 inherit : function(childClass, parentClass) { var Constructor new Function(); Constructor.prototype parentClass.prototype; childClass.prototype new Constructor(); childClass.prototype.constructor childClass; childClass.superclass parentClass.prototype; if(childClass.prototype.constructor Object.prototype.constructor) { childClass.prototype.constructor parentClass; } } 感觉代码看来比较乱我画了个图