1. 深入理解? js 的變量提升和函數(shù)提升
先了解:js沒有塊級作用域,只有全局作用域,和函數(shù)作用域
相同的函數(shù)名會覆蓋
new Foo.getName();
new Foo().getName();
函數(shù)的調(diào)用順序:
優(yōu)先級普及:new Foo()?? 和?? .? 優(yōu)先級一樣
new Foo < new? Foo();
new <?? .
所以可有:
new Foo.getName();? ===》 new (Foo.getName());
new Foo().getName()===> (new Foo()) . getName();
1.變量提升
只會提升到自己所在作用域的頂部
變量提升不會賦值!N健!!
2.函數(shù)提升:
只有函數(shù)聲明式才會提升悠砚,function a(){};
函數(shù)字面量不會提升
//注意
function A(){
console.log(1);
}
function B(){
? ? ? ? ? A:function(){ console.log(2);}
}
由于B()里面的A沒有var 聲明,所以默認是 window,所以B()中的A()會覆蓋外面的A()
?
~~!L梅伞灌旧!