首页 > 其他分享 >js设计模式之工厂模式

js设计模式之工厂模式

时间:2023-12-29 10:33:24浏览次数:22  
标签:console name js 工厂 let viewPage 设计模式 UserFactory log

原型链实现

let UserFactory = function (role) {
if (this instanceof UserFactory) {
let s = new this[role]
return s
} else {
return new UserFactory(role)
}
}
UserFactory.prototype={
SumperAdmin:function (){
this.name="超级管理员"
this.viewPage=['首页','通讯页','发现页','应用数据','权限管理']
},
Admin:function (){
this.name="管理员"
this.viewPage=['首页','通讯页','发现页','应用数据']
},
NormalUser:function (){
this.name="普通用户"
this.viewPage=['首页','通讯页','发现页']
}
}
let superAdmin=UserFactory('SumperAdmin')
console.log(superAdmin.viewPage)
let Admin=UserFactory('Admin')
console.log(Admin.viewPage)
let NormalUser=UserFactory('NormalUser')
console.log(NormalUser.viewPage)
class Animal{
constructor(name) {
this.name = name;
}
}


class实现

class Creator{
create(name){
return new Animal(name)
}
}
let creator=new Creator()
let cat=creator.create('cat')
console.log(cat.name)
let dog=creator.create('dog')
console.log(dog.name)



标签:console,name,js,工厂,let,viewPage,设计模式,UserFactory,log
From: https://www.cnblogs.com/itzhijia/p/17934202.html

相关文章

  • [Node]Node.js安装
    工作需求,将本地node.js升级到v20+,踩坑踩了1个多小时,故整理一篇攻略自用。 下载与安装1.Node.js官网下载安装包:https://nodejs.org/en(我下载的是20.10.0)2.安装时修改安装目录,网上教程大多不建议放在C盘;其余默认。3.安装完后启动命令行工具,输入node-v可查看安装好的版本......
  • 动态加载JS文件
    在某些特殊场景下,特别是在库和框架的开发过程中,需要动态加载JS文件并执行它们。下面是使用Promise的简单封装。functionloadJS(files,done){//Gettheheadtagconsthead=document.getElementsByTagName('head')[0];Promise.all(files.map(file=>{returnnewProm......
  • js的作用域
    全局作用域全局作用域是指代码中任何地方都可以访问的变量,在整个应用程序中都是可见的局部作用域(函数作用域)局部作用域是指在函数内部定义的变量,它们只能在函数内部访问,函数外部无法访问块级作用域这是一个特殊的作用域,在es6之前,js中没有块级作用域。在es6中,使用let和const......
  • .NET 6 控制台程序(Console)读取配置appsettings.json配置文件
    ​ 1、添加引用Microsoft.Extensions.Configuration.Json添加引用 Microsoft.Extensions.Configuration.Json,引用方法可以参考:1)使用Nuget界面管理器搜索"Microsoft.Extensions.Configuration.Json"在列表中分别找到它,点击"安装"相关文档:VS(VisualStudio)中Nuget的使用......
  • 初见threejs
    threejs底层封装了强大的webGL技术,让开发者们可以开箱即用(其实也并非开箱即用,还是挺麻烦的......
  • Unity解析key不确定的Json
    遇到Json的key不固定时,只需要解析value,如下Jsondata下的key(1和2)是变化的:{"status":1,"msg":"success","data":["1:":{"atitle":"test",......
  • SwiftUI 中Webview与JS交互
    iOS中WKWebview原生与网页端JS交互常用的方法是首先在webview中注入标定好的方法名,例如标定一个request方法letconfig=WKWebViewConfiguration()letuserContent=WKUserContentController();  vardealMessage=DealMessage()userContent.add(dealMessage,name:......
  • 前端那些好用的CSS/JS网站
    ......
  • 在nodejs环境里使用canvas和sharp生成图片
    1.安装依赖包npminstalljsdomcanvas2.实例代码const{JSDOM}=require('jsdom');const{createCanvas}=require('canvas');//创建一个虚拟DOM环境constdom=newJSDOM('<!DOCTYPEhtml><html><head></head><body>&......
  • 蓝牙资产标签之智慧工厂应用
    近几年,随着IOT技术的迅速发展,推动资产追踪和其他物联网技术的部署量激增。根据近两年的政策和实际需求来看,大型工厂是资产追踪解决方案部署的最大市场。制造业的资产追踪互联设备的普及正在提高许多垂直行业的效率和投资回报率,并对工程和制造运营产生显著的影响。通过增加位置应用,......