[js]js设计模式-构造函数模式
构造函数模式
function WriteJsPerson(name,age) {
this.name=name; //不用手动创建obj
this.age = age;
this.writeJs=function () {
console.log(this.name+"hello")
};
//不用写return语句了
}
p2 = new WriteJsPerson("yifei",23); //执行方法和普通函数有所区别, 类是func类型, 实例是对象数据类型
p2.writeJs();
console.log("----------------------------");
console.log(typeof p2);
console.log(typeof WriteJsPerson);
构造函数和工厂模式区别
1,执行时候
普通函数-> createJsPerson()
工厂模式-> new CreateJsPerson(),返回值是该类的一个实例.
var arr=[];
var arr = new Array[]; //(构造函数方法创建)arr是数据类的一个实例
所有的类都是函数数据类型 CreateJsPerson
所有的实例都是对象数据类型 p2
2. 写的时候
不用手动新建 obj --自动会创建
不会返回 obj --自动会返回
[js]js设计模式-构造函数模式的更多相关文章
- js架构设计模式——MVVM模式下,ViewModel和View,Model有什么区别
MVVM模式下,ViewModel和View,Model有什么区别 Model:很简单,就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model. View:也很简单,就 ...
- JS创建对象之构造函数模式
function Person(name, age, job) { this.name = name; this.age = age; this.job = job; this.sayName = f ...
- js设计模式:工厂模式、构造函数模式、原型模式、混合模式
一.js面向对象程序 var o1 = new Object(); o1.name = "宾宾"; o1.sex = "男"; o1.a ...
- [JS设计模式]:构造函数模式(2)
基本用法 function Car(model, year, miles) { this.model = model; this.year = year; this.miles = miles; th ...
- 面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式
什么是面向对象?面向对象是一种思想!(废话). 面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下 ...
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
什么是面向对象?面向对象是一种思想. 面向对象可以把程序中的关键模块都视为对象, 而模块拥有属性及方法. 这样如果我们把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作. 工厂 ...
- js面向对象的程序设计 --- 中篇(创建对象) 之 工厂模式和 构造函数模式
创建对象 虽然Object构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量重复代码. ·工厂模式 工厂模式是一种广为人知的设计模式,这种模式 ...
- 构造函数模式自己定义js对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- js面向对象、创建对象的工厂模式、构造函数模式、原型链模式
JS面向对象编程(转载) 什么是面向对象编程(OOP)?用对象的思想去写代码,就是面向对象编程. 面向对象编程的特点 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有对象上继承出新的对象 ...
随机推荐
- 修改Egret引擎代码的方法
某些情况下,我们需要修改Egret引擎的源码,我们可以在源码目录(一般如下:xxx\Egret\engine\x.x.x\src\egret)下直接修改ts代码. 在对应的项目下打开CMD命令行,输入 ...
- Linux: Linux C 获取当前系统时间的时间戳(精确到秒、毫秒、微秒) gettimeofday
说明 获取当前的时间的秒数和微秒数本方法需要用到 gettimeofday() 函数,该函数需要引入的头文件是 <sys/time.h> . 函数说明 int gettimeofday ...
- Android CPU类型及预定义的宏
[时间:2019-02] [状态:Open] [关键词:android,cpu, armeabi, armeabi-v7a, arm64-v8a, 32位,64位,c/c++] 本文主要总结下前段时间 ...
- 西山居首页jQuery焦点图代码
西山居首页jQuery焦点图代码是一款带文字描述,左右箭头,索引按钮,自动轮播切换的jQuery特效代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div style ...
- 使用DNSPod解析Freenom域名
注册Freenom域名 Freenom官网:http://www.freenom.com Freenom提供的顶级域名包括:tk,ml,ga,cf,gq 申请流程: 注册用户后登陆,然后查询并选择一个 ...
- 通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
当初在开始接触Java时 学习File部分的一个小练习 挺有意思 一开始是通过看 北京圣思园 张龙老师的视频开始学校java的,必须强烈推荐,真很棒. 功能实现:主要实现以树形方式展现出该目录中的 ...
- Oracle 11G 安装文档
一. 将文件win32_11gR2_database_1of2.zip和win32_11gR2_database_2of2.zip解压. 注意:这两个文件解压到同一个目录下,即:将Components ...
- phpstudy 升级(更换) mysql 版本
原文链接:http://phpstudy.php.cn/jishu-php-3131.html 一.下载新版 mysql 例如 mysql5.7: https://dev.mysql.com/down ...
- 关于npm的坑
http://javascript.ruanyifeng.com/nodejs/packagejson.html 一.npm常用易忘指令 npm list --depth=0:查看所有高级的npm m ...
- Qt编写自定义控件4-旋转仪表盘
前言 旋转仪表盘,一般用在需要触摸调节设置值的场景中,其实Qt本身就提供了QDial控件具有类似的功能,本控件最大的难点不在于绘制刻度和指针等,而在于自动计算当前用户按下处的坐标转换为当前值,这个功能 ...