js閉包與封閉函式與其他知識點
閉包函式
1.封閉函式是javascript中匿名函式的另外一種寫法,建立一個一開始就執行而不用命名的函式
2.(function(){...})();還可以在函式定義前加上"~"或者"!"符號來定義匿名函式
(function(){
var str = '歡迎訪問我的主頁';
alert(str);
a++;
})();
!function(){
var str = '歡迎訪問我的主頁';
alert(str);
a++;
}();
~function(){
var str = '歡迎訪問我的主頁';
alert(str);
a++;
}()
閉包
函式巢狀函式,內部函式可以引用外部函式的引數和變數,引數和變數不會被垃圾回收機制收回
function aaa(a){
var b = 5;
function bbb(){
a++;
b++;
alert(a);
alert(b);
}
return bbb;
}
var ccc = aaa(2);
ccc();
ccc();
改寫成封閉函式的形式
var ccc = (function(a){
var b = 5;
function bbb(){
a++;
b++;
alert(a);
alert(b);
}
return bbb;
})(2);
ccc();
ccc();
獲取位址列引數
<html>
<head>
</head>
<body>
<script type="text/javascript">
alert(GetQueryString("id"));
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;}
</script>
</body>
</html>
函式的繼承
非常純粹的繼承關係,例項是子類的例項,也是父類的例項
父類新增原型方法/原型屬性,子類都能訪問到
/ 定義一個動物類
function Animal (name) {
// 屬性
this.name = name || 'Animal';
// 例項方法
this.sleep = function(){
console.log(this.name + '正在睡覺!');
}
}
// 原型方法
Animal.prototype.eat = function(food) {
console.log(this.name + '正在吃:' + food);
};
call和Apple
call的方法
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
呼叫一個物件的一個方法,以另一個物件替換當前物件
call 方法可以用來代替另一個物件呼叫一個方法。call 方法可將一個函式的物件上下文從初始的上下文改變為由 thisObj 指定的新物件
Apple方法
apply([thisObj[,argArray]])
應用某一物件的一個方法,用另一個物件替換當前物件
實現繼承
function Animal(name){
this.name = name;
this.showName=function(){
alert(this.name);
}
}
functionCat(name){
Animal.call(this,name);
}
varcat=newCat("BlackCat");
cat.showName();
多重繼承
function Class10()
{
this.showSub = function(a,b)
{
alert(a-b);
}
}
function Class11()
{
this.showAdd = function(a,b)
{
alert(a+b);
}
}
function Class2()
{
Class10.call(this);
Class11.call(this);
}
新選擇器
querySelector:根據選擇器規則返回第一個符合要求的元素
querySelectorAll:根據選擇器規則返回所有符合要求的元素
相關文章
- js函式閉包JS函式
- 回撥函式 與 函式閉包函式
- 3. 匿名函式與閉包函式
- Kotlin 之高階函式與Lambda表示式與閉包Kotlin函式
- python 關於 函式物件與閉包Python函式物件
- JS函式表示式——函式遞迴、閉包JS函式遞迴
- python基礎知識之函式初階——閉包Python函式
- JS作用域與閉包JS
- 13. 閉包函式與裝飾器函式
- 函式閉包函式
- Golang閉包案例分析與普通函式對比Golang函式
- 【Go語言學習】匿名函式與閉包Go函式
- go 閉包函式Go函式
- js中的函式巢狀和閉包JS函式巢狀
- JS函式知識點梳理JS函式
- 理解Python函式閉包Python函式
- 函式閉包機制函式
- 閉包函式(匿名函式)的理解函式
- js--閉包與垃圾回收機制JS
- Go知識盲區--閉包Go
- 面試-JS基礎知識-作用域和閉包、this面試JS
- Python 閉包函式說明Python函式
- JS學習理解之閉包和高階函式JS函式
- 函式物件、裝飾器、閉包函式函式物件
- 淺談js的記憶體與閉包JS記憶體
- 開放式MES與封閉式MES的區別
- JavaScript4:函式和閉包JavaScript函式
- Python基礎之閉包函式Python函式
- 淺談匿名函式和閉包函式
- 立即執行函式(IIFE)&&閉包函式
- rust十三.1、匿名函式(閉包)Rust函式
- 前端JS面試題彙總 Part 2 (null與undefined/閉包/foreach與map/匿名函式/程式碼組織)前端JS面試題NullUndefined函式
- 深入理解閉包之前置知識→作用域與詞法作用域
- JS閉包ClosureJS
- 閉包與裝飾器
- 閉包與內部類
- js中,函式的閉包、作用域跟[[Scopes]]的關係JS函式
- 美麗的閉包,在js中實現函式過載JS函式