美文网首页
闭包/this练习题

闭包/this练习题

作者: 没了提心吊胆的稗子 | 来源:发表于2019-07-10 11:14 被阅读0次

1、

var num = 1,
    obj = {
        num: 2,
        fn: (function (num) {
            this.num *= 2;
            num += 2;

            return function () {
                this.num *= 3;
                num ++;
                console.log(num);
            }
        })(num)
    };
var fn = obj.fn;
fn();
obj.fn();
console.log(num, obj.num);
练习题1

2、

var foo = 1;
function bar() {
    if(!foo){
        var foo = 100;  // 不管条件成不成立,都要进行变量提升
    }
    console.log(foo);
}
bar();  // 100
练习题2

3、

var foo = 'hello';
(function (foo) {
    // 先形参赋值
    console.log(foo); //hello
    var foo = foo || 'world';
    // foo = foo
    console.log(foo);
})(foo);
console.log(foo);  // hello hello hello

逻辑或:第一项转布尔类型为true,就返回第一项的运算结果,反之,返回后面的运算结果
逻辑与:跟逻辑或相反
若两者都有时,先算逻辑与再算逻辑或,即逻辑与的优先级高
0||2&&false||3 -> 3
应用:

function fn(num, callback){
  // 若num没传值让他为0
  num = num || 0;
  // 若callback传递一个函数就执行
  callback && callback();
}

4、

var a = 9;
function fn() {
    a = 0;
    return function (b) {
        return b + a ++;
    }
}
var f = fn();
console.log(f(5));
console.log(fn()(5));
console.log(f(5));
console.log(a);
// 5 5 6 2
练习题4

5、

var ary = [1,2,3,4];
function fn(ary) {
    ary[0] = 0;
    ary = [0];
    ary[0] = 100;
    return ary;
}
var res = fn(ary);
console.log(ary); // [0, 2, 3, 4]
console.log(res); // [100]

6、

function fn(i) {
    return function (n) {
        console.log(n + (i++));
    }
}
var f = fn(10);
f(20); // 30
fn(20)(40); // 60 
fn(30)(50); // 80
f(30); // 41
练习题6

7、

var num = 10;
var obj = {num: 20};
obj.fn = (function (num) {
    this.num = num*3;
    num ++;
    return function (n) {
        this.num += n;
        num ++;
        console.log(num);
    }
})(obj.num);
var fn = obj.fn;
fn(5);
obj.fn(10);
console.log(num, obj.num);  // 22 23 65 30
练习题7

相关文章

  • 闭包练习题

    变量提升/作用域链练习题 **原型练习题

  • 闭包/this练习题

    1、 2、 3、 逻辑或:第一项转布尔类型为true,就返回第一项的运算结果,反之,返回后面的运算结果逻辑与:跟逻...

  • swift-闭包

    闭包 闭包定义 闭包简化 - 尾随闭包 闭包参数 闭包返回值 闭包的循环引用

  • 闭包,闭包,闭包

    1、这家伙到底是什么? 网上关于这个的讨论的太多了太多了,有各种的举例子,但是大部分还在寻找这个答案的小伙伴对于变...

  • 闭包-Closures [swift 5.1]

    闭包的语法 尾随闭包 闭包逃离 自动闭包

  • Day7 闭包(Closures)

    本页包含内容:• 闭包表达式• 尾随闭包• 值捕获• 闭包是引用类型• 逃逸闭包• 自动闭包 1、闭包表达式 闭包...

  • Python闭包

    闭包 = 环境变量 + 函数 调用闭包内部的环境变量 闭包的经典误区 闭包与非闭包实现人类走路 非闭包 闭包

  • 闭包(closure)

    ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...

  • swift- 闭包一

    /*• 闭包表达式• 尾随闭包• 值捕获• 闭包是引用类型• 逃逸闭包• 自动闭包*/

  • (9) python之闭包

    闭包闭包 = 函数 + 环境变量(函数定义的时候) 一个最简单的闭包 闭包不受外部变量影响 非闭包 闭包 闭包 只...

网友评论

      本文标题:闭包/this练习题

      本文链接:https://www.haomeiwen.com/subject/gicqkctx.html