上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 58 下一页
摘要: 你有可能有意或者无意地创建一个函数的“间接引用”,在这个情况下,调用这个函数会应用默认规则 间接引用最容易在赋值时发生: function foo(){ console.log(this.a); } var a = 2; var o = { a: 3, foo: foo}; var p = { a: 阅读全文
posted @ 2020-03-10 06:22 wzndkj 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 规则总有例外,这里也一样。如果你把 null 或者 undefined 作为 this 的绑定对象传入 call、apply 或者 bind,应用的是默认绑定规则 function foo(){ console.log(this.a); } var a = 2; foo.call(null); // 阅读全文
posted @ 2020-03-09 06:39 wzndkj 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 我们首先来看下隐式绑定和显示绑定哪个优先级更高 function foo(){ console.log(this.a) } var obj1 = { a: 2, foo: foo } var obj2 = { a: 3, foo: foo } obj1.foo(); // 2 obj2.foo(); 阅读全文
posted @ 2020-03-08 08:30 wzndkj 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 在传统的面向类的语言中,“构造函数“是类中的一些特殊方法,使用 new 初始化类时会调用类中的构造函数。通常的形式是这样的 something = new MyClass(..); 然而 JavaScript 中 new 的机制实际上和面向类的语言不同。它们只是被 new 操作符调用的普通函数而已。 阅读全文
posted @ 2020-03-07 08:48 wzndkj 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 隐式绑定是必须在一个对象内部包含一个指向函数的属性,并通过这个属间接引用函数,从而把 this 间接隐式绑定到这个对象上。 显示绑定是通过 call() 和 apply() 方法。它们的第一个参数是一个对象,它们会把这个对象绑定到 this. call function foo() { consol 阅读全文
posted @ 2020-03-06 06:41 wzndkj 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 默认绑定 最常用的调用类型,独立函数调用,默认规则 function foo() { console.log(this.a); } var a = 2 foo(); // 2 如果使用严格模式,全局对象将无法使用默认绑定,this 会绑定到 undefined function foo() { 'u 阅读全文
posted @ 2020-03-05 06:49 wzndkj 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 我们排除了一些对于 this 对错误理解并且明白了每个函数的 this 是在调用时被绑定的,完全取决于函数的调用位置。寻找调用位置就是寻找“函数被调用的位置”,但是做起来并没有这么简单,因为某些编程模式可能会隐藏真正的调用位置 最重要的是要分析调用栈,就是为了到达当前执行位置所调用的所有函数 fun 阅读全文
posted @ 2020-03-04 06:40 wzndkj 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 第一种误解:this 理解成指向函数本省,函数看作一个对象,this 并不像我们所想的那样指向函数本身。 function foo(num){ console.log('foo: ' + num); this.count++; } foo.count = 0; var i; for(i=0; i<1 阅读全文
posted @ 2020-03-03 06:40 wzndkj 阅读(239) 评论(0) 推荐(0) 编辑
摘要: var me = { name: 'Kyle' }; var you = { name: 'Reader' } function identify(){ return this.name.toUpperCase(); } function speak(){ var greeting = "Hello 阅读全文
posted @ 2020-03-02 06:35 wzndkj 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 模块是闭包应用中最强大的一个。 function CoolModule() { var something = 'cool'; var another = [1, 2, 3]; function doSomething() { console.log( something); } function 阅读全文
posted @ 2020-02-27 06:45 wzndkj 阅读(202) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 58 下一页