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>
JS-构造函数模式代码实战和总结-极客的更多相关文章
- JS构造函数模式
构造函数是可以创建特定类型对象的函数,可以接受参数定义函数成员.如果之前做过java比较好理解,举个例子: function exampleFunction(arg1, arg2, arg3){ th ...
- Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记
Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...
- js面向对象、创建对象的工厂模式、构造函数模式、原型链模式
JS面向对象编程(转载) 什么是面向对象编程(OOP)?用对象的思想去写代码,就是面向对象编程. 面向对象编程的特点 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有对象上继承出新的对象 ...
- 构造函数模式自己定义js对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式
什么是面向对象?面向对象是一种思想!(废话). 面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下 ...
- js设计模式:工厂模式、构造函数模式、原型模式、混合模式
一.js面向对象程序 var o1 = new Object(); o1.name = "宾宾"; o1.sex = "男"; o1.a ...
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
什么是面向对象?面向对象是一种思想. 面向对象可以把程序中的关键模块都视为对象, 而模块拥有属性及方法. 这样如果我们把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作. 工厂 ...
- JS构造函数、对象工厂、原型模式
1.对象创建的3中方法 1.1.对象字面量 var obj = { name: "mingzi", work: function () { console.log("wo ...
- js面向对象的几种方式----工厂模式、构造函数模式、原型模式
对象的字面量 var obj={} 创建实例对象 var obj=new Object() 工厂模式 function cPerson(name,sex,age){ var o = new Objec ...
随机推荐
- Ubuntu 14.04 安装 sysrepo v0.7.5
参考: Tentative gNMI support with sysrepo protobuf-c/protobuf-c Ubuntu 14.04 安装 sysrepo v0.7.5 安装依赖: s ...
- python 画广东省等压线图
最近开发时要实现一个业务逻辑: 调用中国气象数据网API接口获取广东省实时气象数据 根据数据,基于广东省地图渲染等压线图 最终效果图是这样的: 首先是获取实时气压数据,由于中国气象数据网每次只能获得3 ...
- 线程(Thread,ThreadPool)、Task、Parallel
线程(Thread.ThreadPool) 线程的定义我想大家都有所了解,这里我就不再复述了.我这里主要介绍.NET Framework中的线程(Thread.ThreadPool). .NET Fr ...
- kali 32位 更换 xfce4 桌面
kali 32位默认是gnome桌面,我感觉又难看又卡.下面是换xfce4的方法: 1.安装xfce4: apt install kali-defaults kali-root-login deskt ...
- Vue小项目二手书商城:(五)参考资料
本项目基于vue2.5.2,如有错误,望指正. 完整程序:https://github.com/M-M-Monica/bukesi Vue.js官方文档:https://cn.vuejs.org/v2 ...
- Spark Standalone cluster try
Spark Standalone cluster node*-- stop firewalldsystemctl stop firewalldsystemctl disable firewalld-- ...
- 浮点型/小数/栅格图层转为整数型arcgis操作
有时候会遇到将32位栅格数据提取属性表的操作,但是一般此类数据都是浮点型,是无法计算得到属性表的.因此我们可以利用数据管理工具下的: 复制栅格工具,在最下面选择16位即可,看自己数据情况选择signe ...
- Dart学习-操作符
dart定义了下表所示的运算符.你可以重写许多这些运算符. 描述 运算符 一元后缀 expr++ expr-- () [] . ?. 一元前缀 -expr !expr ~expr ++expr --e ...
- [经验]怎么删除“通过QQ/TIM发送到”右键菜单
首先打开QQ主面板上的系统设置 选择[基本设置]-[文件管理]菜单,并将如图所示的选项去掉勾选即可
- golang相关书签
https://www.zhihu.com/question/30461290 golang资料精选汇编