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组件的设计,可以很好的利用它的这些特点,即自执行

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:Js~(function(){})匿名自执行方法的作用,如需转载请自行联系原博主。

目录
相关文章
|
19天前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
28 1
|
24天前
|
JavaScript
js【详解】call()、apply()、bind()方法
js【详解】call()、apply()、bind()方法
25 6
|
21天前
|
JavaScript 前端开发
JavaScript中exec()方法详解
在这个示例中,exec()方法会找到两个匹配项,并打印出它们在字符串中的位置。
12 1
|
23天前
|
JavaScript 前端开发 容器
vue组件封装——固定宽高比的容器(2种方法:纯CSS实现 + JS实现)
vue组件封装——固定宽高比的容器(2种方法:纯CSS实现 + JS实现)
30 2
|
23天前
|
JavaScript
vue 全局响应键盘按键/监听键盘事件(含 js 获取键盘keyCode值的方法)
vue 全局响应键盘按键/监听键盘事件(含 js 获取键盘keyCode值的方法)
29 2
|
23天前
|
存储 JavaScript 前端开发
使用JavaScript的indexOf方法
使用JavaScript的indexOf方法
|
1天前
|
JavaScript 前端开发 API
EmitAsyncInit 方法是如何调用 JavaScript 层的 init 回调函数的
EmitAsyncInit 方法是如何调用 JavaScript 层的 init 回调函数的
|
23天前
|
前端开发 JavaScript
js 等待接口访问成功后执行指定代码【3种方法】(含async await Promise的使用)
js 等待接口访问成功后执行指定代码【3种方法】(含async await Promise的使用)
11 1
|
23天前
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
21 1
|
21天前
|
JavaScript
JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一