浅学js中的闭包

news/2024/7/19 16:43:31 标签: js, 闭包, js闭包

闭包是有权访问另一个函数作用域的变量的函数。

 举个例子:

function bibao(){
	function xiaoyi(){
		console.log("被调用了");
	}
	return xiaoyi();
}
var bb = new bibao();
bb();

闭包中传递数据

function bibao(){
	function xiaoyi(str){
		console.log(str);
	}
	return xiaoyi;
}
var bb = new bibao();
bb("被调用了");

全局函数的闭包书写

!(function(){ 
	XiaoYi = function(val){ 
		this.name = val;
		this.getName = function(){
			return this.name;
		}
	};
})();
console.log(XiaoYi);
var xy = new XiaoYi('小乙');
console.log(xy.getName());

闭包全局函数的扩展

!(function(){ 
	//console.log(this);
	XiaoYi = function(val){ 
		this.name = val;
		this.getName = function(){
			return this.name;
		}
	};
})();

XiaoYi.prototype.getMName = function() {
	 return this.name;
};

console.log(XiaoYi);
var xy = new XiaoYi('小乙');
console.log(xy.getName());
console.log(xy.getMName());

需要注意的是:

1、闭包中的this指向的是全局
2、闭包中的变量不用var定义,为全局变量


http://www.niftyadmin.cn/n/1491612.html

相关文章

debian中默认不存在sudo命令解决方法

1.使用su安装sudo $su #apt-get install sudo 1 2 2.给账户设置管理员权限 #vim /etc/sudoers 1 3.添加一行,其中”username”替换为登陆账户的名称,输入时不加引号 "username" ALL(ALL:ALL) NOPASSWD:ALL --------------------- 作者:哦呵呵嘞 来源…

oracle 查询积累

//查询表字段 select wm_concat(column_name) from user_tab_columns where Table_NameXIAOYI; -- 数据回滚-- 清空表内 ALL_DATA。 DELETE FROM XIAOYI_TEST_RB;-- 查询表内数据总数。 SELECT COUNT(*) AS COUNT FROM XIAOYI_TEST_RB;-- 执行表数据闪回(回滚&#…

Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作...

首先声明:该文虽以Ubuntu 13.04为例,同样适用于Fedora 17(已测试),但在较低版本的Ubuntu下可能有所差异,具体看后面的注意事项。 技巧目录: 解决Ubuntu下每隔几分钟自动锁屏,需要重…

ztree根据id选中条目

function getZtree() {var setting {view: {expandSpeed: 100,selectedMulti: true,showLine: true, // 是否显示节点间的连线fontCss: {},} data: {simpleData: {enable: true,}},callback: {onClick: function(event,treeId,treeNode){}}};$.fn.zTree.init($("#xiaoyi&…

debian 下设置Ctrl+Alt+T快捷键打开终端

在设置->键盘->快捷键->自定义快捷键->添加 名称:Terminal 命令:gnome-terminal 再右上边点击后 按Ctrl Alt T rebooting...

MySQL不区分大小写

MySQL在Linux下数据库名、表名、列名、别名大小写规则:    1、数据库名与表名是严格区分大小写    2、表的别名是严格区分大小写    3、列名与列的别名在所有的情况下均是忽略大小写的    4、变量名也是严格区分大小写的 注意: A、Linux下MySQL…

linux下jar包程序挂在后台运行

//jar包程序挂在后台运行,默认运行日志在nohup.out下面 nohup java -jar xiaoyi.jar & //查看运行日志 tail nohup.out //把日志输出到指定文件 nohup java -jar xiaoyi.jar >xiaoyi.log &

php 格式化字符宽度,前面补0

1、用sprintf实现 sprintf(format,arg1,arg2,arg) 参数描述format 必需。规定字符串以及如何格式化其中的变量。 可能的格式值: %% - 返回一个百分号 %%b - 二进制数%c - ASCII 值对应的字符%d - 包含正负号的十进制数(负数、0、正数)%e -…