JavaScript继承,寄生组合式继承
来源:互联网 发布:复杂网络 渗透模型 编辑:程序博客网 时间:2024/04/27 15:42
/** * 寄生组合式继承: * 使用寄生式继承来继承超类型的原型,然后将结果指定给子类型的原型 * 优点:高效率,它只调用了一次Supertype构造函数,避免了在prototype上面创建不必要的多余属性, * 同时,原型链还能保持不变 * 正常使用instanceof 和isPrototypeOf() * 普遍认为寄生组合式继承是引用类型最理想的继承方式 */function object(o){ function F(){} //创建临时构造函数 F.prototype = o; //将传入对象作为构造函数的原型 return new F(); //返回类型的新实例}function inheritPrototype(subType,superType){ var prototype = object (superType.prototype); //创建对象 prototype.constructor = subType; //增强对象 subType.prototype = prototype; //指定对象}function SuperType(name){ this.colors = ["red","bule","green"]; this.property = true; this.name = name;}SuperType.prototype.getSuperValue = function(){ return this.property;}SuperType.prototype.sayName = function(){ console.log(this.name);}function SubType(name,age){ this.subproperty = false; SuperType.call(this,name); //另一种继承方式,构造函数 this.age = age;}//SubType.prototype = new SuperType(); //继承语法 ,原型继承// SubType.prototype.constructor = SubType;inheritPrototype(SubType, SuperType); SubType.prototype.sayColor = function(){// console.log(this.colors); return this.colors; }SubType.prototype.getSubValue = function() { //通过原型链实现继承时,不能使用创建字面量创建原型方法,// 这样做 会重写原型链 return this.subproperty;}SubType.prototype.getSuperValue = function(){ return false;}var person1= new SubType();console.log(person1.sayColor());
阅读全文
0 0
- javascript 寄生组合式继承
- JavaScript继承,寄生组合式继承
- JavaScript 继承---寄生组合式继承
- javascript中寄生组合式继承
- JavaScript的寄生组合式继承
- JavaScript的继承--寄生组合式继承
- JavaScript中的寄生组合式继承方式
- JavaScript中寄生组合式继承的理解
- 【代码整理】JavaScript的寄生组合式继承
- JavaScript对寄生组合式继承的理解
- 【JavaScript】理解所谓的‘寄生组合式继承’
- 寄生组合式继承
- 寄生组合式继承
- 寄生组合式继承
- 寄生组合式继承
- JS寄生组合式继承
- js寄生组合式继承
- JS继承--寄生组合式继承
- springmvc接收和传递参数
- JavaScript继承
- jquery禁止复制、禁用右键、文本选择功能、复制按键
- centos6/7安装gitlab
- centos6 安装GitLab
- JavaScript继承,寄生组合式继承
- centos6安装GitLab全程详解和常见问题解决
- HDU5961-传递
- gitlab安装教程、gitlab官网、英文文档
- windows7 64位下git和tortoisegit的安装和使用
- maven + Usage of API documented as @since 1.7+
- win7生成ssh key配置到gitlab
- git Disconnected:No supported authentication methods available问题解决
- gitlab怎么删除创建的项目