javascript原型对象存在的问题(3)

来源:互联网 发布:网络黄金黄金裴蕾 编辑:程序博客网 时间:2024/06/13 21:21

原型对象虽然可以对所有实例的属性和方法共享,但是它的局限性也是很明显的,这是因为共享的特性,也导致原型存在的最大问题,原型里的属性和方法会被所有对象所共享: static。

function Person(){}Person.prototype = {    constructor:Person ,     name: 'z3' ,     age:  20 ,     job : '程序员' ,    friends : ['李四','王五'] ,    sayName : function(){alert('我的名字!')}};  var p1 = new Person();var p2 = new Person();  p1.friends.push('赵六');alert(p1.friends); //李四,王五,赵六alert(p2.friends); //李四,王五,赵六alert(p1.sayName == p2.sayName); //true

因此,我们通常使用原型和构造函数式

function Person(name , age , friends , job){    this.name = name ;     this.age  = age ;     this.friends = friends ;    this.job = job ;}Person.prototype = {    constructor: Person ,  //不考虑被遍历的问题    sayName : function(){        alert(this.name);    }};var p1 = new Person('z3' , 20 , ['王五','赵六'] , '技术总监');var p2 = new Person('李四', 25 , ['王五','赵六' ,'赵7'] ,'boss');alert(p1.friends);  //王五,赵六p1.sayName();  //z3alert(p2.friends); //王五,赵六,赵7p2.sayName(); //李四

动态原型模式

就是把信息都封装到函数中,这样体现了封装的概念

function Person(name , age , friends , job){    this.name = name ;     this.age  = age ;     this.friends = friends ;    this.job = job ;    //动态原型方法:    if( typeof this.sayName != 'function'){        Person.prototype.sayName = function(){            alert(this.name);        };    }}

稳妥构造函数式

所谓稳妥模式就是没有公共属性,而且其他方法也不引用this对象,稳妥模式最适合在安全的环境中使用。如果你的程序对于安全性要求很高,那么非常适合这种原型模式

function Person(name , age , job){        // 创建一个要返回的对象        var obj = new Object();        //可以定义一下私有的变量和函数 private        var name = name ;         //var sex = '男';        //var saySex = function(){};        //添加一个方法        obj.sayName = function(){            alert(name);        }        return obj ;                }var p1 = new Person('张三');p1.sayName();
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三证合一后税务怎么办 身份证在深圳丢了怎么办 吃虾过敏皮肤痒怎么办 吃大头虾手掌痒怎么办 孩子支气管炎咳嗽老不好怎么办 抻筋了 很疼怎么办 短信验证码删了怎么办 对减肥药产生抗体了怎么办 被担保公司骗了怎么办 大学考查课挂了怎么办 大订书机卡针了怎么办 做原创的衣服该怎么办 4s店强制上牌怎么办 小孩一读书就哭怎么办 小孩上中班还哭怎么办 14岁初中生厌学怎么办 加拿大签证拒签了怎么办 离婚后不给孩子抚养费怎么办 格力空调出现e1怎么办 联想一键恢复后怎么办 微盘密码忘记了怎么办 乐高零件丢了怎么办 tpu手机壳变黄怎么办 脚被铁钉扎了怎么办 孩子性格内向不善于交际怎么办 3岁宝宝胆小怕人怎么办 焦虑症又复发了怎么办 有强迫思维的人怎么办 微信图片是黑的怎么办 玩cf老是卡屏怎么办 玩cf电脑卡屏怎么办 u盘装系统蓝屏怎么办 三星a8无限重启怎么办 旋转轮胎车翻了怎么办 轮胎卸不下来了怎么办 饥荒生病的虫洞怎么办 不小心点了暗网怎么办 苹果手机id用不了怎么办 电脑病毒杀不掉怎么办 高考信息填错了怎么办 家长不给买手机怎么办