js函数--闭包和this对象
来源:互联网 发布:2017年女声网络红歌 编辑:程序博客网 时间:2024/05/16 09:24
闭包
闭包是指有权访问另一个函数作用域中的变量的函数。
闭包只取到包含函数中任何变量的最后一个值,如下所示:
function createFunctions() { var result = new Array(); for(var i = 0; i< 10; i++){ result[i] = function() { return i; } } return result;}
这个函数会返回一个函数数组,每个函数返回的都是10;可以通过创建另一个匿名函数实现函数数组返回他们的索引值:
function createFunctions() { var result = new Array(); for(var i = 0; i< 10; i++) { result[i] = function(num) { return function() { return num; } }(i); } return result;}
关于this对象
this对象是在运行时基于函数的执行环境绑定的:在全局变量中,this等于window,当函数被作为某个对象方法调用时,this等于那个对象。然而匿名函数具有全局性,所以this对象也指向window。
var name = "The window";var object = { name : "My Object", getNameFunc: function() { return function() { return this.name; } }};alert(object.getNameFunc()()); //The window
如果想访问object的对象,可以把this保存在闭包可以访问的变量中:
var name = "The window";var object = { name : "My Object", getNameFunc: function() { var that = this; return function() { return that.name; } }};
有些情况下this的值会发生改变:
var name = "The window";var object = { name: "My Object", getName: function() { return this.name; }}object.getName(); //"My Object"(object.getName)(); //"My Object"(object.getName==object.getName)() // "The window"
(object.getName==object.getName)()
这个先执行了一条赋值语句,然后调用赋值后的结果,因为这个赋值表达式的值是函数本身,所以this的值得不到维持。
0 0
- js函数--闭包和this对象
- js闭包函数和 this指针
- bind(this)绑定this指向的对象、箭头函数和闭包
- js 闭包和this实例
- js的闭包和this
- js--函数--2.函数内部对象arguments和this
- 【JS】【Core】函数,函数调用上下文this,闭包
- JavaScript闭包-闭包中的变量和this对象
- 重新认识JS的this、作用域、闭包、对象
- js中的function函数对象和this指针详解
- JS中this和对象作为函数参数的区别
- flexigrid的处理函数使用闭包传递this对象
- javascript 闭包 this 匿名函数 匿名对象
- Js函数深入理解-闭包中的this
- 闭包中的this对象
- JavaScript闭包--this对象
- this和闭包
- JS递归、闭包、this
- Linux串口大致过程
- 数据结构之线性表
- UIDatePicker
- Spring Boot——开发新一代Spring Java应用
- Java集合---LinkedList源码解析
- js函数--闭包和this对象
- UFLDL_Tutorial 笔记(deep learning绝佳的入门资料 )
- Apache ActiveMQ
- java编程之方法模板模型
- 【java】checkboxlist回显处理
- 欢迎使用CSDN-markdown编辑器
- C语言的公共基础知识(4)
- websocket node.js 小实例
- LoRa开发3:终端驱动设计