获得徽章 0
- 兄弟们,猜猜这道题的输出:
let a = {n:1}
let b = a
a.x = a = {n: 4}
console.log(a.x)
console.log(b.x)展开评论点赞 - function Foo() {
getName = function() {
console.log(1)
}
}
Foo.getName = function() {
console.log(2)
}
Foo.prototype.getName = function() {
console.log(3)
}
Foo.getName()
求解释为什么是输出 2展开赞过62 - call、apply、bind 的本质是为了节省空间,把这个已有的方法给到你想给的地方去用,就不用重写一遍了
闭包的本质是对父级作用域的引用,返回一个函数,内部函数就获取了外部函数的作用域,这样外部函数虽然使用过了,但是剩下那个闭包变量还在内存中,一直引用着不能回收掉,所以比如 setTimeout 函数和一切回调函数都使用的闭包,因为这个引用父级的变量不会被回收掉,才能在回调时候使用
展开评论点赞
![[嘿哈]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_67.9ceed33.png)