JS-构造函数模式代码实战和总结-极客

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
//构造函数模式代码实战和总结 //1 , 用户床垫特定类型的对象
//2,JS构造函数比较特殊的地方 new
//3, 其他的语言里,比如php里人家实现,有一个关键字创建一个类
//4,此时的zaomen是一个构造函数,又充当类的概念
function zaomen(huawen){
if (!(this instanceof zaomen)) {
return new zaomen();
}
//定义私有变量
var _huawen = '普通';
//如果传递了参数 huawen
if(huawen){
_huawen = huawen;
}
this.suo='普通的';
this.huawen = _huawen;
this.create = function(){
return "【锁头】"+this.suo+"[花纹]"+this.huawen;
}
}; var xiaozhang = zaomen();
var a = xiaozhang.create();
alert('xiaozhang'+a);
var xiaoli =new zaomen('绚丽');
alert('xiaoli'+xiaoli.create());
//alert(a);弹出错误。因为此时create的 this.suo.. ....等等的this指向window对象 所以window没有此些属性 得 new一个 所以前面进行一个判段
//也可以 var xiaozhang = new zaomen(); </script> <script>
//构造函数和单例模式一一相互对应的。一下修改代码
//aa公司
var AA = {
function:zaomen(huawen){
if (!(this instanceof zaomen)) {
return new zaomen();
}
//定义私有变量
var _huawen = '普通';
//如果传递了参数 huawen
if(huawen){
_huawen = huawen;
}
this.suo='普通的';
this.huawen = _huawen;
this.create = function(){
return "【锁头】"+this.suo+"[花纹]"+this.huawen;
}
};
} //BB公司
var BB = {
function:zaomen(huawen){
if (!(this instanceof zaomen)) {
return new zaomen();
}
//定义私有变量
var _huawen = '普通';
//如果传递了参数 huawen
if(huawen){
_huawen = huawen;
}
this.suo='普通的';
this.huawen = _huawen;
this.create = function(){
return "【锁头】"+this.suo+"[花纹]"+this.huawen;
}
};
} var xiaozhang = new AA.zaomen();
alert('xiaozhang'+xiaozhang.create()); var xiaoli = new BB.zaomen('绚丽');
alert('xiaoli'+xiaoli.create());
</script>
</body>
</html>
上一篇:paramiko分开执行多条命令 不像之前一样使用\n


下一篇:vue 点击弹窗外框关闭弹框