首頁 >web前端 >js教程 >燕十八 Javascript進階影片資料分享

燕十八 Javascript進階影片資料分享

巴扎黑
巴扎黑原創
2017-08-28 16:46:562238瀏覽

JavaScript一種直譯式腳本語言,是一種動態類型、弱型別、基於原型的語言,內建支援類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來為HTML網頁增加動態功能。

JavaScript 是網際網路上最受歡迎的腳本語言,它存在於全世界所有 Web 瀏覽器中,能夠增強使用者與 Web 網站和 Web 應用程式之間的互動。 《燕十八 Javascript高級教程》是JavaScript學習的進階教程,帶領朋友如何擴展的學習JavaScript語言,以使它適應特殊的需求。

燕十八 Javascript進階影片資料分享

影片播放網址:http://www.php.cn/course/214.html

##本課程需要學習this的用法,了解this的意義,這很重要,

1. this 和建構子

this 本身就是類別定義時建構器裡需要用到的,和建構子在一起再自然不過。

/**
 * 页签
 *
 * @class Tab
 * @param nav {string} 页签标题的class
 * @param content {string} 页面内容的class
 *
 */
function Tab(nav, content) {
  this.nav = nav
  this.content = content
}
  
Tab.prototype.getNav = function() {
  return this.nav;
};
Tab.prototype.setNav = function(nav) {
  this.nav = nav;
};
Tab.prototype.add = function() {
};

依照 JavaScript 的習慣, this 應該掛屬性/字段,方法都應該放在原型上。

2. this 和物件

JS 中的物件不用類別也可以創建,有人可能奇怪,類別是物件的模板,物件都是從模板裡copy 出來的,沒有類別怎麼創建物件? JS 的確可以,而且你完全可以寫上萬行功能程式碼而不用寫一個類別。話說 OOP 裡說的是物件導向編程,也沒說面向類編程,是吧 ^_^ 。

var tab = {
  nav: '',
  content: '',
  getNav: function() {
    return this.nav;
  },
  setNav: function(n) {
    this.nav = n;
  }
}

3. this 和函數

首先,this 和獨立的函數放在一起是沒有意義的,前面也提到過 this 應該是和物件導向相關的。純粹的函數只是一個低階的抽象,封裝和復用。如下

function showMsg() {
  alert(this.message)
}
showMsg() // undefined

定義 showMsg,然後以函數方式調用,this.message 是 undefined。因此堅決杜絕在純函數內使用this,但有時候會這麼寫,呼叫方式使用call/apply

function showMsg() {
  alert(this.message)
}
  
var m1 = {
  message: '输入的电话号码不正确'
}
var m2 = {
  message: '输入的身份证号不正确'
}
  
showMsg.call(m1) // '输入的电话号码不正确'
showMsg.call(m2) // '输入的身份证号不正确'

用這種方式可以節省一些程式碼量,例如當兩個類別/物件有共相似的方法時,不必寫兩份,只要定義一個,然後將其綁定在各自的原型和物件上。這時候其實你還是在使用物件或類別(方式1/2),只是間接使用罷了。

以上是燕十八 Javascript進階影片資料分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn