js 函数常见的三种实例化方式
1 //工厂模式 2 function oj(){ 3 var lio=new Object(); //创建对象,对象属性赋值 4 lio.name='lio'; 5 lio.attr='男'; 6 lio.hobby=function(){ 7 var li=document.createElement("p"); 8 var txt=document.createTextNode("三妹"); 9 li.appendChild(txt); 10 document.body.appendChild(li); 11 }; 12 return lio; 13 } 14 var person=oj(); 15 //alert(person.name); 16 17 //构造函数模式 18 function oj2(name,age){ 19 this.name=name; 20 this.age=age; 21 this.hobby=function(){ 22 var li=document.createElement("p"); 23 var txt=document.createTextNode("三妹"); 24 li.appendChild(txt); 25 document.body.appendChild(li); 26 } 27 } 28 var person2=new oj2('三妹',123); 29 person2.hobby(); 30 alert(person2.name); 31 32 //原型模式 33 function oj3(){ 34 //this.name='lio'; 35 } 36 oj3.prototype.name='lio'; 37 oj3.prototype.love= function (name) { 38 alert("爱"+name); 39 }; 40 var person3=new oj3(); 41 //检测是在实例中还是在原型中 42 alert(person3.hasOwnProperty("name")); 43 alert(person3.hasOwnProperty("rename")); 44 person3.love('三妹'); 45 46 //混合模式 47 function oj4(age) { 48 this.age=age; 49 this.rename='aaaa'; 50 }; 51 oj4.prototype={ 52 constructor:oj4, 53 name:'lio', 54 age:123, 55 love: function (name) { 56 alert(name+"爱三妹"); 57 } 58 }; 59 var person4=new oj4(18); 60 alert(person4.hasOwnProperty("age"));//true 61 person4.love('lio');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!