首页 > 代码库 > js对象实例化的常见三种方式
js对象实例化的常见三种方式
三种常见模式:工厂模式,构造函数模式,原型模式
<span style="font-size:18px;"><!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Object</title> </head> <body> <h1>创建对象常见的三种方式</h1> </body> <script> window.onload=function(){ //工厂模式 function oj(){ var lio=new Object(); lio.name=‘lio‘; lio.attr=‘男‘; lio.hobby=function(){ var li=document.createElement("p"); var txt=document.createTextNode("三妹"); li.appendChild(txt); document.body.appendChild(li); }; return lio; } var person=oj(); //alert(person.name); //构造函数模式 function oj2(name,age){ this.name=name; this.age=age; this.hobby=function(){ var li=document.createElement("p"); var txt=document.createTextNode("三妹"); li.appendChild(txt); document.body.appendChild(li); } } var person2=new oj2(‘三妹‘,123); person2.hobby(); alert(person2.name); //原型模式 function oj3(){ //this.name=‘lio‘; } oj3.prototype.name=‘lio‘; oj3.prototype.love= function (name) { alert("爱"+name); }; var person3=new oj3(); //检測是在实例中还是在原型中 alert(person3.hasOwnProperty("name")); alert(person3.hasOwnProperty("rename")); person3.love(‘三妹‘); //混合模式 function oj4(age) { this.age=age; this.rename=‘aaaa‘; }; oj4.prototype={ constructor:oj4, name:‘lio‘, age:123, love: function (name) { alert(name+"爱三妹"); } }; var person4=new oj4(18); alert(person4.hasOwnProperty("age"));//true person4.love(‘lio‘); } </script> </html></span>
js对象实例化的常见三种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。