Coder Social home page Coder Social logo

Comments (9)

wangzl1163 avatar wangzl1163 commented on May 22, 2024 1

上面的思考题解代码1错了
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f(); //更正
}
checkscope();

谢谢提醒,已更新

并没有更新啊

from blog.

olivianate avatar olivianate commented on May 22, 2024

上面的思考题解代码1错了
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f(); //更正
}

checkscope();

from blog.

yygmind avatar yygmind commented on May 22, 2024

上面的思考题解代码1错了
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f(); //更正
}

checkscope();

谢谢提醒,已更新

from blog.

rocky-191 avatar rocky-191 commented on May 22, 2024

setTimeout( obj2.foo, 10 ); // name: obj . 这个为什么会造成绑定丢失,是setTimeout的缘故吗

from blog.

yygmind avatar yygmind commented on May 22, 2024

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.

rocky-191 avatar rocky-191 commented on May 22, 2024

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.

MyNameisQiShiQi avatar MyNameisQiShiQi commented on May 22, 2024

var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f(); //更正
}

checkscope();

这个例子不存在闭包吧,执行checkscope函数的时候f函数还没有被回收,这样的话scope取值是从作用域链中(或者说是执行上下文的外部引用中获取的)获取的

from blog.

AlexZhong22c avatar AlexZhong22c commented on May 22, 2024

显示绑定无法解决丢失绑定问题

有示例吗?call和apply都调用完函数了,怎么还有绑定丢失问题??

from blog.

llh1187 avatar llh1187 commented on May 22, 2024

作者您好,“显示绑定无法解决丢失绑定问题“能否举个例子呢?

from blog.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.