您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

Js命名空间模式 [免费源码]

  • 时间:2022-07-14 02:14 编辑: 来源: 阅读:289
  • 扫一扫,手机访问
摘要:Js命名空间模式 [免费源码]
虽然js不像其他后端语言那样内置对名称空间的支持,但是也可以通过类似的效果和闭包来实现名称空间。 首先,给出六种简单实现方式的细节,如下:单个全局变量varmyapp =(function(){ function method 1(){//...},返回{//...方法1:方法1 };})();2.前缀命名空间var myApp _ property a = { };var myApp _ property b = { };Var app _ method1 = function () {//...} 3.对象文字表示var Myapp = {/*...*/模型:{},视图:{},集合:{ } };Myapp.method1 = function () {//..} 4.嵌套命名空间var myApp = myApp | | { };myapp . models = myapp . models | | { };myapp . models . model util = myapp . models . model util | | { };5.函数的自执行(立即使用表达式)(函数(命名空间){namespace.propertya = "you ... ";namespace . method 1 = function(){//...} })(window . myapp = window . myapp | | { });6.命名空间注入var myApp = myApp | | { };myapp . utils = myapp . utils | | { };(function(){ this.propertyA = "you ... ";this.method1 = function() {//...}}).应用(myapp . utils);让我们把重点放在第四个,那么第四个能像其他语言一样优雅,因为它意味着名称空间吗?答案是:可以。 我在这里写一个方法为读者提供晚餐,如下:var utils = (function (window,undefined) {/*...其余的使用函数...*/var namespace = function () {var A,V,X,O,D,I,J,Len1,Len2a =参数;len1 = a .长度;//支持多参数,比如(I = 0)的两个参数(A.B.C .,d . e .);i < len1i++){ d = a[i]。分裂(\。⑦。);//分解成数组,比如[a,b,c]o = window[d[0]]= window[d[0]]| | { };//确保是一个对象。如果是全局的,就用它。如果不是,创建一个新的{ } x = d . slice(1);//取出[b,c]len 2 = x . length;//支持嵌套,对于B,c对于(j = 0;j < len2j++){ v = x[j]o = o[v]= o[v]| | { };// o逐层深入,保证每一层都是对象。如果是B,O变成A.B .如果是C,O最后变成A.B.C.}} return {/*...其余的功能通常会用到...*/namespace: namespace}})(窗口);使用时,示例如下:utils . namespace(≥0 . 001)。myApp.models:);myapp . models . cat = function(config){ if(type of config!= = > 7。对象7。){throw new Error("构造参数对象不能为空");返回;} this . name = config . name;} myapp . models . cat . prototype = { say name:function(){ console . log(" hello!我的名字是“+this . name);}}//Cache作为局部变量方便重复使用var Cat = myapp . models . Cat;var c1 =新卡特彼勒({名称:凯蒂:})C1 . say name();文/丁向明做博客web前台自媒体人,专注web前台开发,专注做用户体验,加我qq/微信交流:6135833 http://dingxiangming.com。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部