JS模式:Mixin混合模式,=_=!就是常见的Object.create()或者_extend()
运行下面代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <script> var Person = function(firstName,lastName){ this.firstName = firstName; this.lastName = lastName; this.genter = 'male'; }; var clark = new Person('Clark','kent'); console.log(clark);// ->_-> Person {firstName: "Clark", lastName: "kent", genter: "male"} //通过试用call方法,让superhero继承person函数内部的所有属性,理解为执行一遍,并把,执行的语句赋给当前的this; var Superhero = function(firstName,lastName,powers){ person.call(this,firstName,lastName); this.powers = powers; }; /*__________________________________________________________________________________________________________*/ var Car = function(setting){ this.model = setting.model || 'no model provided'; this.color = setting.color || 'no color provided'; }; var Mixin = function(){}; Mixin.prototype = { driveForward : function(){ console.log( "drive forward" ); }, driveBackward : function(){ console.log("drive backward"); }, driveSideways : function(){ console.log("drive sideways") } }; function augment(receivingClass,givingClass){ if(arguments[2]){ for(var i =0; i<arguments.length; i++){ receivingClass.prototype[arguments[i]] = givingClass.prototype[arguments[i]]; }; }else{ for(var method in givingClass){ if(!receivingClass.hasOwnProperty[methodName]){ receivingClass.prototype[methodName] = givingClass.prototype[methodName] }; }; }; }; augment(Car,Mixin,"driveForward","driviBackward"); var myCar = new Car({ model : 'ford++++', color : '#f00' }) myCar.driveForward() // drive forward </script> </body> </html>
天道酬勤
本文作者:方方和圆圆
本文链接:https://www.cnblogs.com/diligenceday/p/3432512.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
js设计模式的代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步