-----------------------------------------------------------------
cc = function(){alert(345)},
pushStack = function() {
cc();
},
pushStack();// //没加var的放在window对象中
pushStack = function() {
cc();
},
cc = function(){alert(345)},
pushStack();//
----------------------------------------------------------------
pushStack = function() {
cc();//cc is not defined
};
pushStack();
cc = function(){alert(345)}; pushStack = function() {
cc();
};
pushStack();//
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);//
alert(666);
};
a();//666 a.call(window)
window.a();//
}
}
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

jquery js解析函数、函数直接调用的更多相关文章

  1. jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

    jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法   在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...

  2. 关于js中函数的调用问题

    js中函数的调用方法 1.直接调用 函数名(参数): 2.通过指向函数的变量去调用 例如: var myval = 函数名: 此刻 myval是指向函数的一个指针: myval(实际参数):此刻调用的 ...

  3. Js文件函数中调用另一个Js文件函数的方法

    在项目中Js文件需要完成某一功能,但这一功能的大部分代码在另外一个Js文件已经完成,只需要调用这个文件实现功能.那么如何调用:一个Js文件函数中调用另一个Js文件函数的方法? (直接代码说明) 示例d ...

  4. JS中函数的调用和this的值

    调用每一个函数会暂停当前函数的执行,传递控制权和参数给新函数.除了声明时定义的形式参数,每个函数还接收两个附加的参数:this 和 arguments. 参数this在面向对象编程中非常重要,他的值取 ...

  5. JS让函数只调用一次

    1 .  在第一次调用函数时,就将该函数内容腾空,以到达函数仅调用一次 ———————————————————————————————— 2 . 设置布尔值来控制后面的函数调用 window.onlo ...

  6. js中的写出想jquery中的函数一样调用

    1.IIFE: Immediately-Invoked function Expression 函数模块自调用 2.代码实现 <!DOCTYPE html> <html lang=& ...

  7. js 匿名函数-立即调用的函数表达式

    先提个问题, 单独写匿名函数为什么报错?return 匿名函数 为什么不报错? 如图: 第二种情况在 f 还没有执行的时候,就报错了,,,当然这得归因于函数声明语句声明提前(发生在代码执行之前)的原因 ...

  8. 解决easyui jQuery JS的for循环调用ajax异步问题

    由于JS的for循环与ajax非同步运行,因此导致for循环结束了而ajax却还未执行,解决此方法有两种 1.设置ajax参数async为false,即与js同步,默认是true(异步). 这里首先引 ...

  9. JS高级——函数的调用模式

    函数调用模式一共有四种 <script> //1.函数模式 //this指向window全局对象 //2.方法模式 //this指向调用这个方法的对象 //3.构造函数模式 //this ...

随机推荐

  1. 二、 HBase核心功能模块。

      Hadoop 框架包含两个核心组件: HDFS 和 MapReduce 其中     HDFS                是文件存储系统,负责数据存储:     MapReduce     是 ...

  2. centos7;windows下安装和使用spice

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  3. HUE配置文件hue.ini 的filebrowser模块详解(图文详解)(分HA集群和非HA集群)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  4. Python(三) 变量与运算符

    一.什么是变量 变量 = [1,2] 二.变量的命名规则 字母,数字,下划线,首字母不能是数字 系统关键字 不能用在变量名中 保留关键字 区别大小写 a=1,   a='1',   a=(1,2),  ...

  5. DevExpress Report打印边距越界问题

    DevExpress  Report Print的时候,出现这样的问题:one or more margins are set outside the printable area of the pa ...

  6. 使用acme.sh快速生成SSL证书

    起因 早上收到了一封来自MySSL EE <noreply@notify.myssl.com>的邮件提示证书即将过期, 少于7天,但是acme.sh应该是60天自动renew的.于是查看下 ...

  7. MFC- OnIdle空闲处理

    CWinApp::OnIdlevirtual BOOL OnIdle( LONG lCount );返回值: 如果要接收更多的空闲处理时间,则返回非零值:如果不需要更多的空闲时间则返回0.参数: lC ...

  8. jvm 性能分析

    VM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据.JVM当前所有线程及其栈相关信息等等.各种JDK自带的剖析工具,包括jps.jstack.ji ...

  9. cogs 1500. 误差曲线

    1500. 误差曲线 ★★   输入文件:errorcurves.in   输出文件:errorcurves.out   评测插件时间限制:1 s   内存限制:256 MB [题目描述] Josep ...

  10. 讲的好,php后端模式,php-fpm以及php-cgi, fast-cgi,以及与nginx的关系

    关于cgi是什么,fast-cgi是什么,php-cgi是什么,fast-cgi是什么,下面这篇讲的很清楚: https://segmentfault.com/q/1010000000256516 另 ...