函数作用域确定于函数定义期间

1. 函数作用域确定于函数定义期间

let count = 1
function fooInner() {
console.log(count) // zdz-log
}
function foo() {
let count = 2
fooInner()
}
foo() // 1 箭头函数和普通函数一样

image.png

2. 构造实例后修改原型,已经创建的实例不受影响

function Foo() {}
Foo.prototype = {
name: 'old'
}
let oldFoo = new Foo()
console.log(oldFoo.name) // old
Foo.prototype = {
name: 'new'
}
let newFoo = new Foo()
console.log(newFoo.name) // new
![image.png](https://upload-images.jianshu.io/upload_images/26022476-7ed11583b033141a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

3.函数形式 作用域链机制

function foo() {
console.log('old') // zdz-log
}
let obj = {
foo: foo
}
let objN = {
foo: () => foo()
}
foo = () => console.log('new') // zdz-log
obj.foo()
objN.foo()

image.png

posted @   story.Write(z)  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示