Comments (9)
上面的思考题解代码1错了
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f(); //更正
}
checkscope();谢谢提醒,已更新
并没有更新啊
from blog.
上面的思考题解代码1错了
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f(); //更正
}
checkscope();
from blog.
上面的思考题解代码1错了
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f(); //更正
}checkscope();
谢谢提醒,已更新
from blog.
setTimeout( obj2.foo, 10 ); // name: obj . 这个为什么会造成绑定丢失,是setTimeout的缘故吗
from blog.
setTimeout( obj2.foo, 10 ); // name: obj . 这个为什么会造成绑定丢失,是setTimeout的缘故吗
因为 this 的指向发生了变化,setTimeout(fn, delay) { fn(); }
实际上 fn 是一个参数传递的引用(fn=obj2.foo
),在 fn=obj2.foo
这里,fn 的实际调用者是 window
对象,this 的指向从 obj2 变成了全局,这里相当于上文的 fooOBJ()
from blog.
setTimeout( obj2.foo, 10 ); // name: obj . 这个为什么会造成绑定丢失,是setTimeout的缘故吗
因为 this 的指向发生了变化,
setTimeout(fn, delay) { fn(); }
实际上 fn 是一个参数传递的引用(fn=obj2.foo
),在fn=obj2.foo
这里,fn 的实际调用者是window
对象,this 的指向从 obj2 变成了全局,这里相当于上文的fooOBJ()
明白了,就像循环里套了setTimeout输出最后也会发生变化。想起了setTimeout常出的面试题。谢谢
from blog.
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f(); //更正
}
checkscope();
这个例子不存在闭包吧,执行checkscope函数的时候f函数还没有被回收,这样的话scope取值是从作用域链中(或者说是执行上下文的外部引用中获取的)获取的
from blog.
显示绑定无法解决丢失绑定问题
有示例吗?call和apply都调用完函数了,怎么还有绑定丢失问题??
from blog.
作者您好,“显示绑定无法解决丢失绑定问题“能否举个例子呢?
from blog.
Related Issues (20)
- 【进阶4-4期】Lodash是如何实现深拷贝的 HOT 4
- 【进阶5-1期】重新认识构造函数、原型和原型链 HOT 14
- 干得漂亮 HOT 2
- 【进阶5-2期】图解原型链及其继承优缺点 HOT 1
- 【进阶5-3期】深入探究 Function & Object 鸡蛋问题 HOT 6
- 【进阶 6-1 期】JavaScript 高阶函数浅析 HOT 13
- 【进阶 6-2 期】深入高阶函数应用之柯里化 HOT 3
- 【进阶 7-1 期】深入浅出节流函数 throttle HOT 6
- 【进阶 7-2 期】深入浅出防抖函数 debounce HOT 3
- 【进阶 7-3 期】[译] Throttle 和 Debounce 在 React 中的应用 HOT 1
- 【进阶 7-4 期】深入篇 | 阿里 P6 必会 Lodash 防抖节流函数实现原理 HOT 1
- 对变量对象和激活对象这个有点不明白 这两个是不是ES3的概念呢 在ES5中通过 VariableEnvironment
- 前端 100 问:能搞懂80%的请把简历给我 HOT 6
- 【进阶 7-5 期】浅出篇 7 个角度吃透 Lodash 防抖节流原理 HOT 1
- 【进阶 6-3 期】Array 原型方法源码实现大解密 HOT 1
- 配图错误
- > 我用原生的bind试了obj.**proto**.friend = "Kitty"; // 修改原型 HOT 1
- 博客图床挂了 HOT 1
- 第7期 深入浅出throttle 的加强版throttle的wait参数问题 HOT 3
- 聊聊面试时,那些必须注意的事情 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blog.