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 ...
随机推荐
- python笔记--异常处理
Python异常处理 常见异常 AttributeError:属性错误,特性引用和赋值失败时会引发属性错误 NameError:试图访问的变量名不存在 SyntaxError:语法错误,代码形式错误 ...
- PostgreSQL 空间数据类型point、 line等
PostgreSQL中提供了空间类型字段 几何类型 几何数据类型表示二维空间的对象.表6-18 显示了PostgreSQL 里面所有的几何类型.最基本的类型是“点”,它是其它数据类型的基础. 6. ...
- Jenkins之定时构建
参考文章:https://blog.csdn.net/ZZY1078689276/article/details/77520441 第一个*表示分钟,取值0~59 第二个*表示小时,取值0~23 第三 ...
- 基于三层架构项目下的Ado【六】
一.基于三层架构项目下的Ado增删改查总结,提示:现在一般都是使用EF框架操作. 1. 先在model层创建出一个和你将会查询出一样类型的表,比如你将查询出的有五个字段,那么你就需要创建出一个和你查询 ...
- obfuscate 混淆 verb
- Petrozavodsk Winter Camp, Day 8, 2014, Ship
$dp(i,j)$表示i-j这段还没运走时的状态,包括 运输了多少次,还剩多少空间 每次枚举运输左边还是右边转移 #include <bits/stdc++.h> #define rep( ...
- WORDPRESS博客完美更换网站空间服务器的方法
更换主机空间的步骤:原主机的所有数据移动至新主机上→修改wp-config.php数据库连接信息 (1)备份原主机全站文件 使用FTP备份网站根目录下所有文件并上传到新主机,向主机客服询问FTP地址. ...
- 654. Maximum Binary Tree最大二叉树
网址:https://leetcode.com/problems/maximum-binary-tree/ 参考: https://leetcode.com/problems/maximum-bina ...
- 搭建SDN网络——mininet
好久没来写不博客,感觉自己不写写博客,就完全想不起当天干了什么.前几天参加了小米的面试,整个人被打击的不行,还是要好好学习,不然工作都找不到. 这学期选了SDN的课,只有六周,学完有点懵,这这这等于什 ...
- QT:创建一个widget,包含源文件,头文件,以及ui文件
1. 安装QT 2. 在QT Welcome画面,点击 New Project 3. 选择Application--Qt Widgets Application 4. 按提示创建即可 文件目录如下: ...