jquery js解析函数、函数直接调用

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:
复制代码
-----------------------------------------------------------------
cc = function(){alert(345)},
pushStack = function() {
    cc();
},
pushStack();//345

//没加var的放在window对象中
pushStack = function() {
    cc();
},
cc = function(){alert(345)},
pushStack();//345
----------------------------------------------------------------
pushStack = function() {
    cc();//cc is not defined
};
pushStack();
cc = function(){alert(345)};


pushStack = function() {
    cc();
};
pushStack();//345
function cc(){alert(345)};
----------------------------------------------------------------
cc = function(){alert(345)};
pushStack();//pushStack is not defined ,js解析器执行到这里的时候pushStack还是未定义
pushStack = function() {
    cc(); 
};

cc = function(){alert(345)};
pushStack();//345,js解析器执行到这里的时候pushStack已经定义了
function pushStack() {
    cc(); 
};
复制代码

 

复制代码
name = '2';
a = function(){
    alert(this.name);
    alert(888);
},
o = {
    fn1 : function(){
            a = function(){ 
            //fn1执行的时候(fn1要执行,不执行是加不进去的)把a加到window里面去,把外部的a方法覆盖了
                alert(this.name);//2  window
                alert(this);//2
                alert(666);
            };
            a();//666  a.call(window)
            window.a();//666
    }
}
o.fn1();
window.a();// 2   666
复制代码

 

复制代码
name = '2';
a = function(){
    alert(this.name);
    alert(888);
},
o = {
    fn1 : function(){
            this.a = function(){//fn1执行,给o对象加了a方法
                alert(this.name); 
                alert(this);
                alert(666);
            };
            a(); //2   888    a.call(window)   ,都是从window中找a()没有就报错
            window.a(); //2  888
    }
}
o.fn1();
window.a();// 2   888
o.a();//666
复制代码
复制代码
name = '2';
a = function(){
    alert(this.name);
    alert(888);
},
o = {
    fn1 : function(){
            var a = function(){ //fn1函数执行,就有2个a方法,一个在fn1局部作用域,一个在window
                alert(this.name); 
                alert(this);
                alert(666);
            };
            a(); //2  666  a.call(window),查找局部作用域的a方法
            window.a(); // 2  888
    }
}
o.fn1();
window.a();//  2   888
复制代码

 

复制代码
       jQuery = function() {
            alert(1);
            return new jQuery.fn.init();
        },
        jQuery.fn = jQuery.prototype = {//fn是类的静态属性
        //能够调用jQuery原型里(constructor()、pushStack())方法的只能是jQuery对象或者init对象:$('div')。
                constructor: jQuery,
                init: function() {
                },
                //$('div').pushStack,this是$('div'),
                pushStack: function() {
                    alert(2);
                    this.constructor();//1,  this是init对象或者jQuery对象$('div'),返回的是新的空init对象
                    constructor();//constructor.call(window),调不了报错,
                },
        }
        jQuery.fn.init.prototype = jQuery.fn;
        var j = constructor();//window调用不了
        $('div').pushStack();//1,2,1, $('div')是init对象可以调用pushStack()方法
        o = {}
        o.pushStack();//o.pushStack is not a function,能够调用pushStack方法是jQuery的对象后者init对象,
        new jQuery.fn.init().pushStack();//2 1
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/6906343.html,如需转载请自行联系原作者

相关文章
|
9天前
|
JavaScript 前端开发
JavaScript基础知识-函数的返回值
关于JavaScript函数返回值的基础知识。
18 9
JavaScript基础知识-函数的返回值
|
9天前
|
JavaScript 前端开发
JavaScript基础知识-函数的参数
关于JavaScript函数参数基础知识的介绍。
14 4
JavaScript基础知识-函数的参数
|
9天前
|
JavaScript 前端开发
JavaScript基础知识-立即执行函数
关于JavaScript基础知识中立即执行函数的介绍。
13 2
JavaScript基础知识-立即执行函数
|
6天前
|
JavaScript 前端开发
JavaScript 函数
JavaScript 函数
19 9
|
8天前
|
JavaScript 前端开发
前端JS函数
【9月更文挑战第4天】前端JS函数
19 6
|
4天前
|
存储 JavaScript 前端开发
JS中的数组有哪些常用操作函数和属性
【9月更文挑战第7天】JS中的数组有哪些常用操作函数和属性
8 1
|
13天前
|
Rust JavaScript 前端开发
Rust! 无VDom! 尤雨溪解析 Vue.js 2024 新特性
Rust! 无VDom! 尤雨溪解析 Vue.js 2024 新特性
|
10天前
|
JavaScript 前端开发 API
Javaweb之javascript的BOM对象的详细解析
BOM为Web开发提供了强大的API,允许开发者与浏览器进行深入的交互。合理使用BOM中的对象和方法,可以极大地增强Web应用的功能性和用户体验。需要注意的是,BOM的某些特征可能会在不同浏览器中表现不一致,因此在开发过程中需要进行仔细的测试和兼容性处理。通过掌握BOM,开发者能够制作出更丰富、更动态、更交互性的JavaWeb应用。
11 1
|
9天前
|
自然语言处理 前端开发 JavaScript
Javaweb之javascript的详细解析
通过明确JavaScript的定位,掌握其核心概念和相关技术栈,在实现交互丰富的Web应用时,JavaScript就能够发挥它不可替代的作用。随着前后端分离趋势的推进,JavaScript在现代 Web 开发中变得更加重要,不仅限于传统的 JavaWeb 应用,而是广泛应用于各种类型的前端项目。
9 0
|
11天前
|
JavaScript 前端开发

推荐镜像

更多