麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JS > 正文

JavaScript 學習 - 提高篇

2024-09-06 12:43:38
字體:
來源:轉載
供稿:網友

JavaScript 學習 - 提高篇

一. JavaScript中的對象.

JavaScript中的Object是一組數據的key-value的集合, 有點類似于Java中的HashMap, 所有這些數據都是Object里的property. 通常情況下, JavaScript中建立一個對象用"new"加上constructor function來實現. 如new Date(), new Object()等.

var book = new Object();
book.name = "JavaScript is Cool";
book.author = "tom";
book.pages = 514;

上面例子中的name和page就是名為book的對象中的property. 我們可以用delete來刪除Object中的property: "delete book.name;". 除了Object, Date等buildin的對象外, 我們可以寫自己的constructor function, 然后使用new就可以建立自己的對象. 如上面的book可以寫成:

function Book (name, author, page) {
 this.name = name;
 this.author = author;
 this.page = page;
}
var abook = new Book("JavaScript is Cool", "tom", 514);

二. function的用法

在JavaScript中, function是一種數據類型, 所有的function都是從buildin的Function object 衍生的對象. 所以在JavaScript 中function可以作為參數傳遞, 可以作為Object的property, 也可以當作函數返回值. function在JavaScript中有兩種用法, 一種是當作constructor, 前面加上new keyword用來建立對象. 一種是當作method, 為其他對象調用.

注意function和method在中文里的意思相當, 在有些語言里也可以通用. 但是在JavaScript中, 它們還是有所區別的. function本身是是一個對象, 而當作為一個方法他屬于一個對象時, 就成為了一個這個對象的method, 相當于一個對象種的屬性. 也就是說method是相對于一個對象而言的, function在某些情況下成為了一個對象的method.

function Book(name, author, page) {
 this.name = name;
 this.author = author;
 this.page = page;
 this.getReader = Book_getReader;
}

function Book_getReader() {
 //....
}

上面的例子種, function Book_getReader()就成為了Book的一個名為getReader的method. call()和apply()是Function object 的兩個方法, 它們也可以使一個function作為另一個對象的method來調用用. call()和apply()都需要參數, 而第一個參數就是調用對象, 也就是當function內部出現this時, this所指的對象. call()和apply()的區別在于call()可以傳遞任意長度參數, 只要第一個參數時調用對象. 而apply只接受兩個參數, 需要將除調用對象外的所有參數放入一個數組中. 即:

function getBooksWithSameAuthor(form, to) {
 var name = this.author;
 var books = ...
 //get books written by name and from year "from"  to year "to"
 return books;
}

var abook = new Book("JavaScript is Cool", "tom", 514);
var books = getBooksWithSameAuthor.call(abook, 1990, 2005);

var books = getBooksWithSameAuthor.apply(abook, [1990, 2005]);

當一個function不作為一個對象的method時, JavaScript會認為它是屬于一個Globle Object對象的method, 這個Globle Object在Browser中就是window類. 所以從這個角度來說, function和method又可以統一起來了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费在线观看成年人视频 | 欧美a∨一区二区三区久久黄 | 欧美精品一级片 | 精品av在线播放 | 日韩毛片网 | 久久人人爽人人爽人人片av高请 | 一级性生活视频 | 黄视频网站免费观看 | 国产乱一区二区三区视频 | 一本色道久久综合狠狠躁篇适合什么人看 | 精品国产一区二区三区久久久 | 精品国产一区二区三 | 99re热精品视频 | 91成人在线免费视频 | 日韩黄a | 国产精选电影免费在线观看网站 | 成人福利在线观看 | 久久久久久久久久亚洲 | 中国黄色一级生活片 | 免费国产羞羞网站视频 | 欧美大逼网 | 毛片视频观看 | 怦然心动50免费完整版 | 欧美另类视频在线 | 黑色丝袜美美女被躁视频 | 欧美性视频一区二区 | 91精选视频 | 综合97| 麻豆一二区| 久久久久中文字幕 | 国产羞羞视频在线观看 | 亚洲午夜天堂吃瓜在线 | 斗罗破苍穹在线观看免费完整观看 | 涩涩屋av | 91香焦视频| 中国7777高潮网站 | 一级色毛片 | 高清国产在线 | 久久色播 | 91av在线影院 | 91超视频 |