這兩個很好 講解的很好 解決了困擾我很久的問題
JS對象的創建與使用
摘自:http://www.cnblogs.com/Jener/p/5878858.html
本文內容:
1.介紹對象的兩種類型;
2.創建對象并添加成員;
3.訪問對象屬性;
4.利用for循環枚舉對象的屬性類型;
5.利用關鍵字delete刪除對象成員
6.作為函數參數的對象;
- JavaScript對象有兩種類型
1.Native:在ECMAScript標準中定義和描述,包括JavaScript內置對象(數組,日期對象等)和用戶自定義對象;
2.Host:在主機環境(如瀏覽器)中實現并提供給開發者使用,比如Windows對象和所有的DOM對象; - 創建對象:定義空對象之后再添加成員
最簡單的方法(即Object Literal,對象字面變量),之后便可以向它添加新成員。
<script>
var myObject={};/* 聲明對象字面變量*/
myObject.name="Jener";/*向對象添加新成員*/
myObject.age=25;
alert(myObject.name);/*利用彈窗輸出對象name屬性值*/
</script>
對象字面量.png
- 定義對象方法(函數)的方式
1.對象字面變量;
2.追加到對象中;
對象的方法.png
- 對象屬性的訪問方式
對象屬性的訪問方式.png
- 枚舉對象屬性
枚舉對象的類型.png
- 對象屬性的刪除(利用關鍵字delete)
對象屬性的刪除.png
- 作為函數參數的對象
對象作為函數參數.png
回調函數的介紹
摘自:http://blog.csdn.net/baidu_32262373/article/details/54969696
一、前奏
在談回調函數之前,先看下下面兩段代碼:
不妨猜測一下代碼的結果。
function say (value) {
alert(value);
}
alert(say);
alert(say('hi js.'));
如果你測試了,就會發現:
只寫變量名 say 返回的將會是 say方法本身,以字符串的形式表現出來。
而在變量名后加()如say()返回的就會使say方法調用后的結果,這里是彈出value的值。
二、js中函數可以作為參數傳遞
再看下面的兩段代碼:
function say (value) {
alert(value);
}
function execute (someFunction, value) {
someFunction(value);
}
execute(say, 'hi js.');
與
function execute (someFunction, value) {
someFunction(value);
}
execute(function(value){alert(value);}, 'hi js.');
上面第一段代碼是將say方法作為參數傳遞給execute方法
第二段代碼則是直接將匿名函數作為參數傳遞給execute方法
實際上:
function say (value) {
alert(value);
}
// 注意看下面,直接寫say方法的方法名與下面的匿名函數可以認為是一個東西
// 這樣再看上面兩段代碼是不是對函數可以作為參數傳遞就更加清晰了
say;
function (value) {
alert(value);
}
這里的say或者匿名函數就被稱為回調函數。
三、回調函數易混淆點——傳參
如果回調函數需要傳參,如何做到,這里介紹兩種解決方案。
- 將回調函數的參數作為與回調函數同等級的參數進行傳遞
傳參方式一.png
- 回調函數的參數在調用回調函數內部創建
傳參方式二.png
四、寫在最后
回調函數應用場景多用在使用 js 寫組件時,尤其是組件的事件很多都需要回調函數的支持。
關于回調函數還有什么問題可以在下面留言,一起交流。