var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
}; alert(object.getNameFunc()());//The Window
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
return that.name;
};
}
};
alert(object.getNameFunc()());//My Object
function fun(n,o) {
console.log(o)
return {
fun:function(m){
return fun(m,n);
}
};
}
var a = fun(0); a.fun(1); a.fun(2); a.fun(3);//undefined,?,?,?
var b = fun(0).fun(1).fun(2).fun(3);//undefined,?,?,?
var c = fun(0).fun(1); c.fun(2); c.fun(3);//undefined,?,?,?
//问:三行a,b,c的输出分别是什么?
这是一道非常典型的JS闭包问题。其中嵌套了三层fun函数,搞清楚每层fun的函数是那个fun函数尤为重要。
//答案:
//a: undefined,0,0,0
//b: undefined,0,1,2
//c: undefined,0,1,1
猜你喜欢
2020-02-22
varname=The Window;varobject={name:My Object,getNameFunc:function(){returnfunction(){returnthis.name;};}}; alert(object.getNameFunc()());//The Windowvarname=The Window;varobject={name:My Object,get
2020-01-31
一、大小关系基本的 ,,=,=,= 我就不在此多说了,相信各位对代码感兴趣的同学都懂~在js中==则是比较两个运算数的返回值是否相等,!=则是返回值不相等而===则是比较两个运算数的返回值和数据的类型是否都相等。!==则是
2019-08-28
!DOCTYPE htmlheadmeta http-equiv=Content-Type content=text/html; charset=utf-8 /titleJS操作数据库/titlescript language=javascript type=text/javascriptvar conn, rs;function getConnection() { conn = new
2018-09-19
getSig: function (param) {var paramStr = [], paramStrSorted = [];for (var n in param) {paramStr.push(n);}paramStr = paramStr.sort();$(paramStr).each(function (index) {paramStrSorted.push(this + param[
2017-01-21
一、词法结构1、区分大小写2、注意 // 单行3、字面量(直接量literal)12//数字5.8 // 小数hello'hello'true/js/gi//正则null//空{x:1,y:2}[1,2,3,4]4、标示符(变量)和保留字5、分号可以省略但是可能会产生问题,js会
2016-08-30
一、变量的规则1.首字母必须是英文字母或者下划线2.由英文字母、数字、下划线和$组成3.不能与JavaScript关键词和保留字重名4.最好以驼峰命名法,第一个单词首字母小写,其它单词首字母大写二、变量的声明方法var 变