• 前端框架封装(一)


             jquery对外暴露了两个方法:jQuery和$,
            * 这两方法实际上是同一个方法,
            * 通过调用这两个方法,可以得到一个jQuery实例对象。
            * jQuery实例对象是一个伪数组对象。
            * jQuery和$实际上是一个工厂函数。

     先实现一个弹出框插件的实列:(为了实现插件机制,让外界可以透过jQuery.fn扩充方法。)

     <script>
            /*
            * jQuery插件实现机制:
            * 就是给原型添加一些功能方法。
            * */
            (function( w ) {
    
                // 对外暴露的工厂函数
                function jQuery() {
                    return new jQuery.fn.init();
                }
    
                // 给原型提供一个简写方式
                jQuery.fn = jQuery.prototype = {
    
                };
    
                // init是jQuery中真正的构造函数
                var init = jQuery.fn.init = function() {
    
                };
    
                // 替换构造函数的原型 为 jQuery工厂的原型
                init.prototype = jQuery.fn;
    
                // 把工厂通过两个变量暴露出去
                w.jQuery = w.$ = jQuery;
    
            }( window ));
    
            // 实现一个jQ弹出框插件
            jQuery.fn.alert = function( msg ) {
                alert( msg );
            };
    
            // 测试插件
            var $$ = $();
            $$.alert('弹出框插件');
        </script>
    

     Object.prototype.toString:

    作用:根据内部的this返回一个类似于这样的字符串'[object constructorName]'
     这个方法有个缺点,不能获取用户自定义对象的具体类型,只能获取内置对象的类型。

     //测试    
         console.log(Object.prototype.toString.call([]));
        console.log(Object.prototype.toString.call( new Date() ));
        console.log(Object.prototype.toString.call( Array ));
        console.log(Object.prototype.toString.call( Date ));
    

     

    简写 ==> 因为{}对象直接继承Object.prototype,
     所以通过这个对象得到的toString,一定来自Object.prototype。

      console.log(({}).toString.call([]));
            console.log(({}).toString.call( new Date() ));
            console.log(({}).toString.call( Array ));
            console.log(({}).toString.call( Date ));
    

     用这个toString获取自定义对象的类型

     function Person(){}
            var xiaofang = new Person();
            console.log(({}).toString.call( xiaofang ));
    

     代码块就是一对大括号。

    {
                var a = 1;
                console.log(a);
     }
    

     

    如果把一对大括号赋值给其他变量,或者参与运算,那么大括号就变成了字面对象。

     {}.toString();//错误
    

     需要通过运算,把{}转换为字面量,才能调用方法

     console.log(({}).toString()); 
    
  • 相关阅读:
    关于Ubuntu 9.10 的aptget update 一直无法更新源的点点滴滴
    CentOS的安装和搭建文件共享服务器(Samba)
    VirtualBox 下的 Ubuntu 虚拟机中使用 Android 真机做开发调试
    VmWare下安装CentOS6图文安装教程
    CentOS的远程桌面(xdm)
    ubuntu Apache安装设置
    关于母版页的按钮事件
    TSQL使用函数uppercase更新xml
    文章的上一篇和下一篇导航 V2
    数据库用户映射到 SQL Server 登录名
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/7768640.html
Copyright © 2020-2023  润新知