JavaScript面向对象编程-封装

来源:互联网 发布:大数据平台架构图深度 编辑:程序博客网 时间:2024/06/11 03:35
<!doctype html><html> <head>  <title>Document</title>  <script type="text/javascript" src="jquery-1.8.3.min.js"></script>  <script>/*JavaScript面向对象编程-封装*/$(function(){// 生成对象的原始模式var Cat = {name : '',color : ''};var c1 = {};// 创建一个空对象c1.name = '大毛';c1.colr = '黄色';var c2 = {};c2.name = '二毛';c2.color = '黑色';//alert(c1.name);// 原始模式的改进function Cat(name, color){return {name : name,color : color}}//var c3 = Cat('大毛', '黄色');//var c4 = Cat('二毛', '黑色');//alert(c4);// 构造函数模式function Person(name, gender) {this.name = name;this.gender = gender;// 内存浪费问题this.type = '人';this.eat = function(){alert('吃饭...');}}var c5 = new Person('张三', '男');var c6 = new Person('李四', '女');//alert(c5.name + ',' + c5.gender);//alert(c5.constructor == Person);//alert(c6 instanceof Person);// Prototype模式function Dog(name, gender){this.name = name;this.gender = gender;}Dog.prototype.type = '狗';Dog.prototype.eat = function(){alert('狗是最忠实的动物!');}var dog1 = new Dog('大黄', '公');var dog2 = new Dog('二黄', '母');//alert(dog1.type);//alert(dog2.type);//alert(dog1.type == dog2.type); // true//dog1.eat();//dog2.eat();//alert(dog1.eat == dog2.eat); // true//alert(Dog.prototype.isPrototypeOf(dog1));// 用来判断某一个属性到底是本地属性,还是继承自prototype对象的属性。//alert(dog1.hasOwnProperty('name'));// in运算符// 判断某个实例是否含有某个属性//alert('name' in dog1); // true// 用来遍历某个对象的所有属性for(var pro in dog1) {alert(pro);}var arrs = [1, 2, 3, 4];for(var i in arrs) {console.log(i);}});  </script> </head> <body>   </body></html></span>

0 0
原创粉丝点击