js闭包??

<script>var name = "The Window";var object = {name : "My Object",getNameFunc : function(){console.log("11111");console.log(this);  //this == object  //调用该匿名函数的是对象return function(){console.log("22222");console.log(this); //this == window   //匿名函数下的匿名函数return this.name;};}};alert(object.getNameFunc()());//--var name = "The Window";var object = {name : "My Object",getNameFunc : function(){var that = this;return function(){console.log("33333");console.log(this); //this==windowconsole.log("44444");console.log(that); //that==objectreturn that.name;};}};alert(object.getNameFunc()());</script>

 

function makeFunc() {var name = "Mozilla";function displayName() {alert(name);}return displayName; //返回一个函数
}
var myFunc = makeFunc(); //把函数返回值赋值给myFunc
console.log(myFunc); //输出函数内容
myFunc();//调用函数

 

function makeAdder(x) {return function (y) { //返回一个函数return x + y; //返回值
    };
}
var add4 = makeAdder(); //无传参函数返回值console.log("//无传参函数返回值");console.log(add4);//输出函数体console.log(add4(2)); //NaN  Number.NaN 是一个特殊值,说明某些算术运算(如求负数的平方根)的结果不是数字var add5 = makeAdder(5); //把函数返回值赋值给add5,console.log("//有参函数返回值");console.log(add5);//输出函数体console.log(add5(2));//7

 

    var Counter1 = (function () { })();console.log("输出立即调用函数返回值Counter1");console.log(Counter1); //undefinedvar Counter2 = (function () { var privateCounter = 0; })();console.log("输出立即调用函数返回值Counter2");console.log(Counter2); //undefinedvar Counter3 = (function () {var privateCounter = 0;function changeBy(val) {privateCounter += val;}})();console.log("输出立即调用函数返回值Counter3");console.log(Counter3); //undefined    //--var Counter4 = (function () {var privateCounter = 0;function changeBy(val) {privateCounter += val;}return {value: function () {return privateCounter;}}})();console.log("输出立即调用函数返回值Counter4");console.log(Counter4); //{value: ƒ} //类型object

 

var Counter = (function () {var privateCounter = 0;function changeBy(val) {privateCounter += val;}return {increment: function () {changeBy(1);},decrement: function () {changeBy(-1);},value: function () {return privateCounter;}}
})();
console.log(Counter.value()); /* logs 0 */ //返回0
Counter.increment(); //执行0+1
Counter.increment(); //执行1+1
console.log(Counter.value()); /* logs 2 */ //输出2
Counter.decrement(); //执行2+(-1)
console.log(Counter.value()); /* logs 1 */ //输出1

 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures

转载于:https://www.cnblogs.com/enych/p/8966592.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript----BOM(浏览器对象模型)

BOM 浏览器对象模型 BOM 的全称为 Browser Object Model,被译为浏览器对象模型。BOM提供了独立于 HTML 页面内容&#xff0c;而与浏览器相关的一系列对象。主要被用于管理浏览器窗口及与浏览器窗口之间通信等功能。 1、Window 对象 window对象是BOM中最顶层对象&#xff1b;表示…

JWT协议学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token&#xff08;JWT&#xff09;是…

DOM操作2

一、API和WebAPI API就是接口&#xff0c;就是通道&#xff0c;负责一个程序和其他软件的沟通&#xff0c;本质是预先定义的函数。Web API是网络应用程序接口。包含了广泛的功能&#xff0c;网络应用通过API接口&#xff0c;可以实现存储服务、消息服务、计算服务等能力&#x…

浮动布局demo

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>浮动布局</title><style type"text/css">*{margin: 0;padding: 0;}header{height: 150px;background: yellow;}nav{height: 30px;background: green;…

UI行业发展预测 系列规划的调整

我又双叒叕拖更了&#xff0c;上一篇还是1月22号更新的&#xff0c;这都3月9号了……前面几期把职业规划、能力分析、几个分析用的设计理论都写完了&#xff0c;当然实际工作中用到的方法论不止上面这些&#xff0c;后续会接着学习&#xff1b;如果你的目标是一线团队&#xff…

出现Press ENTER or type command to continue的原因

cd 然后 vim .vimrc 写入 set nu 保存 退出转载于:https://www.cnblogs.com/520qtf/p/8968441.html

基于Flask实现后台权限管理系统 - 导言

网上有这样一个段子&#xff0c;在评论语言好坏的时候&#xff0c;都会有人评论说PHP是世界上最好的语言&#xff0c;人生苦短我用Python&#xff0c;这里姑且不去评论语言的好坏&#xff0c;每一个语言存在都有它的价值&#xff0c;譬如C语言适合底层开发&#xff0c;整个Linu…

5-1 unittest框架使用

unittest是python的一个单元测试框架&#xff0c;内置的&#xff0c;不需要pip install 什么什么的。直接在py文件里面调用 import unittest。 他这个框架是怎么回事呢&#xff0c;他可以对数据初始化&#xff0c;然后执行测试&#xff08;里面有断言功能就是判断返回是否正确…

bzoj 4573: [Zjoi2016]大森林

Description 小Y家里有一个大森林&#xff0c;里面有n棵树&#xff0c;编号从1到n。一开始这些树都只是树苗&#xff0c;只有一个节点&#xff0c;标号为1。这些树 都有一个特殊的节点&#xff0c;我们称之为生长节点&#xff0c;这些节点有生长出子节点的能力。小Y掌握了一种魔…

Unity3D在C#编程中的一些命名空间的引用及说明

System包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、属性和处理异常的基础类和基类。其他类提供支持下列操作的服务&#xff1a;数据类型转换&#xff0c;方法参数操作&#xff0c;数学计算&#xff0c;远程和本地程序调用&#xff0c;应用程序环境管理以及对…

docker入门简介

简介docker(容器技术)是实现虚拟化技术的一种方案,通过利用linux中命名空间,控制组和联合文件系统这个三个主要技术,来实现应用程序空间的隔离.通过对应用程序运行环境的封装来生成镜像并部署来实现跨平台,一定程度上加快了服务交付的整体流程.这篇文章主要介绍docker的一些基本…

Highcharts 配置选项详细说明

http://www.runoob.com/highcharts/highcharts-setting-detail.html 转载于:https://www.cnblogs.com/mengfangui/p/8969121.html

linux下的启停脚本

linux下的根据项目名称&#xff0c;进行进程的启停脚本 #!/bin/bashJAVA/usr/bin/java APP_HOME/opt/program/qa/wechat APP_NAMEprogramname.jar APP_PARAM"--spring.config.location${APP_HOME}/application.properties --logging.path${APP_HOME}"case $1 in star…

python 网页爬取数据生成文字云图

1. 需要的三个包&#xff1a; from wordcloud import WordCloud #词云库 import matplotlib.pyplot as plt #数学绘图库 import jieba; 2. 定义变量&#xff08;将对于的变量到一个全局的文件中&#xff09;&#xff1a; import re; pdurl_firsthttps://movie.do…

python---重点(设计模式)

前戏&#xff1a;设计模式简介 设计模式是面向对象设计的解决方案&#xff0c;是复用性程序设计的经验总结。&#xff08;与语言无关&#xff0c;任何语言都可以实现设计模式&#xff09; 设计模式根据使用目的的不同而分为创建型模式&#xff08;Creational Pattern&#xff0…

洛谷 题解 P2010 【回文日期】

因为有8个字符&#xff0c;所以可得出每一年只有一个回文日期。 因此只要判断每一年就行了。 做法&#xff1a; 我们先把年倒过来&#xff0c;例如2018年就倒为8102&#xff0c;就得出8102就是回文日期的后四个字符&#xff0c;我们只要判断一下有没有这个月份和这个日期。 具体…

线程相关

1、启动线程1.11 new Handler()形式new Handler(mContext.getMainLooper()).post(newOnekeyBindFrameActivity.NetworkThread());1.12new Handler().postDelayed(new StatusCheckLoginBindFrameThread(), IoTCultivatePlantConfig.START_ACTIVITY_POST_DELAYED);1.2 new Thread…

验证Oracle收集统计信息参数granularity数据分析的力度

最近在学习Oracle的统计信息这一块&#xff0c;收集统计信息的方法如下&#xff1a; DBMS_STATS.GATHER_TABLE_STATS (ownname VARCHAR2, ---所有者名字tabname VARCHAR2, ---表名partname VARCHAR2 DEFAULT NULL, ---要分析的分区名estimate_percent NUMBER DEFAULT NULL, …

Python之NumPy(axis=0 与axis=1)区分

Python之NumPy&#xff08;axis0 与axis1&#xff09;区分 转载于:https://www.cnblogs.com/greatljg/p/10802392.html

Python Web开发:开发wsgi中间件

本文参考了&#xff1a; github.com/alanctkc/ws…Youtube : Creating WSGI Middleware上篇文章简要提到&#xff1a;wsgi 规范中的 app 是一个可调用对象&#xff0c;可以通过嵌套调用的方式实现中间件的功能。这篇文章就来亲自动手实现一下。 此文的重点在于 app 端&#xff…