原型对象的常用开发模式

<!DOCTYPE html>
<html>
<head>
<title>原型对象的常用开发模式</title>
</head>
<body>


<script type="text/javascript">
/*
function Person() {
// body...
}


Person.prototype = {
constructor : Person,
name : 'z3',
age : 20,
friends : ['w5','z6']
}


var p1 = new Person();
var p2 = new Person();


p1.friends.push('z7');
alert(p1.friends);// w5,z6,z7
alert(p2.friends);// w5,z6,z7
*/
// 原型的 属性和方法被所有对象所共享


// 所以,组合使用原型和构造函数式定义一个类


// 1 动态原生模式,让你的代码都封装到一起
/* function Person(name, age)
{
this.name = name;
this.age = age;
if (typeof sayName != 'function') {
Person.prototype.sayName = function() {
alert(this.name);
}
}
}


var p1 = new Person('z3',20); // 初始化sayName
var p2 = new Person('w5',25); // 已存在sayName,不需要初始化
p1.sayName(); // z3
p2.sayName(); // w5
*/
// 2 稳妥构造函数式,durable object(稳妥对象), 将对象放在非常安全的环境中
// 特点: 没有公共属性,不能使用this对象
function Person(name) {
// 创建一个可以返回的对象
var obj = new Object();


// 可以定义一个私有的变量和方法
var name = name;
obj.sayName = function() {
alert(name);
}


return obj;
}
var p1 = new Person('z3');
alert(p1.name); // undefiend
p1.sayName(); // z3


</script>


</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值