`
zccst
  • 浏览: 3292337 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

延迟自定义函数

阅读更多
作者:zccst

如果函数内又定义了一个跟自己同名的函数,执行结果是什么?
function scareMe(){
	alert("Boo!");
	function scareMe(){
		alert("double boo!");
	}
	scareMe();
}
scareMe();


结论:把函数名当变量理解,还遵循作用域链规则。即外部调用外部的,内部调用内部的。


优点是:可以延迟定义函数(同时将只执行一次的代码放到外层同名函数中)
var scareMe = function (){
	alert("Boo!");
	scareMe = function (){
		alert("double boo!");
	}
}



缺点是:如果将外部函数赋给某一个变量,或对象的key时,还指向外层同名函数。
var scareMe = function (){
	alert("Boo!");
	scareMe = function (){
		alert("double boo!");
	}
}

scareMe.property = "properly";

var prank = scareMe;
var spooky = {boo: scareMe};

prank();//Boo!
prank();//Boo!
console.log(prank.property);//properly

spooky.boo();//Boo!
spooky.boo();//Boo!
console.log(spooky.boo.property);//properly

scareMe();//double boo!
scareMe();//double boo!
console.log(scareMe.property);//undefined

spooky.boo();//Boo!
console.log(spooky.boo.property);//properly


结论:
//scareMe是指向外部function(){...}的指针
//赋值发生后,prank和spooky.boo也都是指向外部function(){...}的指针。

//指向了prank()方法后,scareMe是指向内部function(){}
//其实,执行prank()、spooky.boo()、scareMe()中的任一个效果都一样
分享到:
评论

相关推荐

    易语言Exe_jkscript源码,易语言易乐谷.3源码,易语言易用脚本例程

    易语言易用脚本例程源码,易用脚本例程,加100,写到编辑框,自定义函数_取启动时间,自定义函数_前进,自定义函数_后退,自定义函数_左转,自定义函数_右转,自定义函数_延迟,自定义函数_延时,自定义函数_落笔,自定义函数_抬...

    js Date自定义函数 延迟脚本执行

    下面的原理是利用时间差的原理实现脚本的延迟执行,是个思路,需要的朋友可以参考下。

    华大MCU延时函数重定义校准

    官方库延时函数误差太大,近2倍,在此基于嘀嗒定时器做了毫秒、微妙级别的两个延时函数。1、可用在IO口模拟串口等要求时序操作的场景,如DHT11单总线、模拟I2C、SPI等。已经在温湿度传感器DHT11上做了测试。2、例程...

    matlab学习笔记:如何在matlab中如何自定义函数和匿名函数

    pause(延迟时间):延迟函数。 其余的程序语句和C++大同小异,当然matlab也可以和C++一样自己定义函数。 定义函数语句为: function输出形参=函数名(输入形参) 例: 其中c为输出形参,counum为函数名,a,b为输入形参,...

    jQuery中常用动画效果函数(日常整理)

     delay():对被选元素的所有排队函数(仍未运行)设置延迟。  dequeue():运行被选元素的下一个排队函数。  fadeln():逐渐改变被选元素的不透明度,从隐藏到可见。  fadeOut():逐渐改变被元素的不透明度,从...

    diypage:基于vue + element-ui自定义拖拽页面

    动画效果如果直接用数据驱动,动画比较僵硬,建议使用一些弹性动画效果如果拖拽函数使用html5,拖动函数,不好用,而且拖起来有个很难看的一块,不方便自定义;建议自己改用onmouesemove / start / end来原生书写...

    truetime教程链接

    ruetime是由瑞典Lund工学院Henriksson等人开发的一个基于Matlab/Simulink的实时网络控制系统的仿真工具箱,为...任务和中断处理器的执行需要通过用户自定义函数来实现。调度策略使用一个优先权函数来决定任务的属性。

    jquery常用函数与方法汇总

    用于将队列中的函数延时执行。他既可以推迟动画队列的执行,也可以用于自定义队列。 duration:延时时间,单位:毫秒 queueName:队列名词,默认是Fx,动画队列。 例: 头部与底部延迟加载动画效果 $(document).ready...

    javasin函数源码-talos:塔洛斯粒子引擎

    sin函数源码塔洛斯视觉特效 特拉维斯 网站: Discord 服务器: 基于节点的开源 VFX 编辑器,具有强大的界面和随时可用的 libGDX 运行时。 截屏 主要特征 基于节点的粒子引擎和编辑器 从 libgdx 旧文件导入(和批量...

    jQuery中常用动画效果函数知识点整理

    delay():对被选元素的所有排队函数(仍未运行)设置延迟。 dequeue():运行被选元素的下一个排队函数。 fadeln():逐渐改变被选元素的不透明度,从隐藏到可见。 fadeOut():逐渐改变被元素的不透明度,从可见到隐藏...

    inquisitor:一个简单的应用程序,用于通过API网关和Lambda函数测试请求延迟

    一个简单的应用程序,用于通过API网关和Lambda函数测试请求延迟。 最简单的部署方法是直接进行部署。 部署后,请检查堆栈输出以获取网站URL,然后在浏览器中打开该URL以运行测试。 对于没有Serverless App存储库...

    组态王6.53延时启动程序

    然后在程序中设置延时的时间(默认30秒,可自定义),在下面路径框中输入组态王运行程序(Touchvew.exe)的路径,点确定即可。 注:(1)使用该工具时,计算机中不需要再设置Touchvew.exe的开机自启动; (2)若要...

    go开发实战.doc

    5.2 自定义函数 22 5.2.1 无参无返回值 22 5.2.2 有参无返回值 23 5.2.3 无参有返回值 24 5.2.4 有参有返回值 25 5.3 递归函数 26 5.4 函数类型 27 5.5 匿名函数与闭包 27 5.6 延迟调用defer 30 5.6.1 ...

    长通道固体火箭发动机点火瞬态数值分析 (2011年)

    以N-S方程、k-ε湍流模型为基础,采用计算流体软件Fluent的源相法和UDF(用户自定义函数)技术对长通道内外燃管型装药固体火箭发动机瞬时点火过程进行了轴对称数值分析,并对点火控制方案进行了优化.计算结果表明,所模拟...

    JS时间控制实现动态效果的实例讲解

    如下所示: [removed] BOM //Bowers Object ...// 自定义函数赋值 function abc(i) { alert(i); } //setInterval('alert(123)',2000); var dh = document.getElementById("dh"); //alert(dh

    HAUT-checkin:河南工业大学 完美校园 自动校外打卡

    选择自定义函数 地域可以随便选 运行环境选择python3.6 提交方法选择本地上传zip包 点击上传选择刚刚下载的zip文件 展开高级配置子菜单 执行超时时间设置为900秒 然后点击此链接获取二维码 每个用户都需要扫描此...

    仿芒果网机票预定智能输入提示,基于jquery

    支持选择后自定义callback函数; 支持IE6、IE7、IE8、Firefox 呃,实际上上面的很多都是原suggest插件中自有的,我只是去掉了其ajax获取数据的功能,因为这延迟稍微有些烦人。 PS:3字码是航空系统中很常见的为每...

    elistrix:一个延迟容错库,有助于将您的应用程序与缓慢或失败服务的不确定世界隔离开来

    您可以选择指定自定义阈值来更改以下内容: 窗口长度(我们将保留先前命令请求的历史记录的时间) 延迟阈值(当前窗口中所有请求的平均延迟,以毫秒为单位) 错误阈值(当前窗口中所有请求失败的请求的百分比) ...

    JQuery_z_tree

    ◦7)、利用 onNodeCreated 事件回调函数对节点 DOM 进行操作会影响速度,影响程度受节点数量而定。 2、setting 配置信息说明 ◦不需要进行特殊的配置 3、treeNode 节点数据说明 ◦对 节点数据 没有特殊...

Global site tag (gtag.js) - Google Analytics