js对象实例化的常见三种方式
2015-08-08 19:08
676 查看
三种常见模式:工厂模式,构造函数模式,原型模式
<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 - 侧边导航收缩伸展
- JS - 6款鼠标悬停效果
- JSP基础语法篇——编程题
- js 字符串操作函数
- JS - 鼠标经过边框旋转
- JS - 图片放大器
- JS - 全屏滚动
- Ajax(三) — json 数据格式
- 【javascript】 声明函数与函数表达式 的区别
- JS - 焦点图
- JS实现动态添加图片上传,多个单图添加
- js 判断输入都年份是不是闰年
- js 将一个正整数转为二进制输出
- js判断输入的年月日是一年中的第几天
- JavaScript学习笔记——对象分类
- JS中prototype属性-JS原型模式
- javascript之onload事件
- 关于自定义标签当中的unable to find setter method for attribute:xxx错误 小记
- angular.js笔记 ---关于Route路由
- 分析javascript关闭