- 遞歸調用arguments.callee();
- caller和callee:arguments.callee返回當前正在執行的函數,function.caller返回函數的調用體所在函數。
- 變量和函數提升:
- 01、在使用函數表達式方式創建函數(var func = function(){})的時候,整個函數表達式并不會進行提升,只會對var聲明的變量提升;
- 02、預處理的時候,同名的函數都會進行提升,但是后面的會覆蓋掉前面的;
- 03、如果出現變量和函數同名的情況,則在進行提升的時候,只會提升函數到當前作用域頂端而忽略變量的提升操作。
- 關于call和apply:
- 01、call:對象a要調用對象b中的c方法時:b.c.call(a,d,e,...);d,e,...指傳入b中的實參;并且把b中的this指向a。
- 02、apply:b.c.apply(a,[d,e,...]);不需要更改this指向時a寫成null,call同。
- 03、apply的功能和call一模一樣,但是只有一點不一樣:Call的傳參是平鋪的,Apply是把所有參數放在一個數組里面的傳遞的。
- splice(a,b,c)方法中a指要操作的位置,b指從a開始向后刪除幾個,c指要添加到位置a的東西。c省略時指刪除;
- split:把字符串切割為數組;
- slice() 方法可從已有的數組中返回選定的元素,返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
- 以下形成一個鏈式的結構,稱之為原型鏈:
- ① 每個構造函數都有原型對象
- ② 每個對象都有自己的構造函數
- ③ 每個構造函數的原型都是一個對象
- ④ 那么這個構造函數的原型對象也有自己的構造函數
- ⑤ 那么這個構造函數的原型對象的構造函數也有自己的原型對象
- 原型鏈中的屬性搜索原則:
- 當訪問某個對象的成員的時候,會先在自身中查找,如果找到則直接使用
如果在自身中沒有找到,則去當前創建當前對象的構造函數的原型對象中查找,如果找到了則直接使用
如果在該原型對象中沒有找到,則繼續查找原型對象的原型對象(創建該原型對象的構造函數所對應的原型對象),如果找到則直接使用
如果在原型對象的原型對象中也沒有找到,則繼續向上搜索....
直到Object的原型對象,若還是沒有,則返回undefined(屬性)或報錯(方法)。
- 設置繼承:
SubClass.prototype = new SuperClass();
SubClass.prototype.constructor = SubClass;
- 在javaScript中,打印時會調用toString函數,相加計算會調用valueOf函數。
- 生成圖像占位符:
<img src=imgSrc>
imgSrc="http://placehold.it/50x50"
- each方法中的this應該是value;
- each是jQuery的方法(可以遍歷真數組, 也可以遍歷偽數組, 以及可以遍歷對象(fn(k,v)));
- map是jQuery的方法(可以遍歷真數組, 也可以遍歷偽數組, 以及可以遍歷對象(fn(v,k)));
- forEach是js方法(只能遍歷真數組(fn(v,k));
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。