Js~(function(){})匿名自执行方法的作用
匿名自执行方法体(function(){})经常用在设计JS插件上面,它定义相关组件的行为,自动初始化相关属性,而且在页面中可以直接执行,你不需要手动执行它,它被自动被执行!
在设计你的匿名自执行方法体时,我们有几点需要注意,在这里大叔部总结了一下,请看下面说明
- 将它的结果赋给一个对象
- 如果它没有返回值,那希望使用它的内部对象,需要这个对象是公共的(即不可var)
- 可以将它定义成一个自执行的属性体
具体介绍这三点
将它的结果赋给一个对象
var ar = (function () { var PageMap = function () { console.log("初始化") }; PageMap.prototype = { get: function (page) { return page; }, set: function (page, value) { console.log("set"); }, has: function (page) { return false; }, clear: function () { console.log("clear"); } }; return PageMap; })(); var a = new ar(); a.set(1, "OK");
如果它没有返回值,那希望使用它的内部对象,需要这个对象是公共的
(function (option) { option = option || { id: 0, pages: [] }; var pages = []; Maps = function () { console.log("maps init..."); }; //扩展方法 Maps.prototype = { keys: function () { return pages[id] != undefined; }, get: function (id) { return pages[id]; }, set: function (value) { pages.splice(value); pages.push(value); }, append: function (value) { pages.push(value); }, each: function () { console.log("eache pages result"); for (var item in pages) console.log(pages[item]); } }; })(); var arr = new Maps(); arr.append(1); arr.append(2); arr.append(3); arr.each();
可以将它定义成一个自执行的属性体
var test = ({ // 这里你可以定义常量,设置其它值, 自动运行 width: 480, height: 640, // 当然也可以定义utility方法 getMax: function () { return this.width + "x" + this.height; }, // 初始化 init: function () { console.log(this.getMax()); // 更多代码... }, print: function () { console.log(this.getMax()); } }); // 这样就开始初始化咯 test.init(); test.print();
而对于以后我们的JS组件的设计,可以很好的利用它的这些特点,即自执行!
分类:
前端技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2015-09-22 MongoDB学习笔记~数据结构与实体对象不一致时,它会怎么样?
2015-09-22 MongoDB学习笔记~使用原生语句实现三层集合关系的更新
2012-09-22 将不确定变为确定系列~Linq的批量操作靠的住吗?