一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

Javascript的call、apply的理解

時(shí)間:2024-09-11 00:20:58 JavaScript 我要投稿
  • 相關(guān)推薦

Javascript的call、apply的理解

  call 方法在使用一個(gè)指定的this值和若干個(gè)指定的參數值的前提下調用某個(gè)函數或方法.

  注意:該函數的語(yǔ)法與 apply() 方法的語(yǔ)法幾乎完全相同,唯一的區別在于,apply()方法接受的是一個(gè)參數數組,而 call()方法接受的是一系列參數列表。

  了解完這兩個(gè)方法的概念后,我們來(lái)一步一步理解他們的應用.

  改變方法內this的指向

  我們先來(lái)看下面這個(gè)例子

  var name = "編程的人";var age = 1;var person = {name:"公眾號:bianchengderen",age:20}function say(){console.log("我叫:"+this.name+",年齡:"+this.age)}say();// 我叫: 編程的人,年齡: 1say.call(person);//年齡:20

  這兩種調用執行的方式不一樣,他們的結果也不一樣,不一樣在于say方法里面的this指向了不同的對象,第一次執行指向的是window,而我們以call方式執行,將say方法里面的this指向了person對象.

  這是不是有點(diǎn)冒充別人的感覺(jué).那我們這樣有什么作用了?當然自己可以多多想想,到底能做什么! 我們繼續往下面走.

  實(shí)現繼承機制繼承,這是高級面向對象的一種特性,用call我們可以將JAVASCRIPT有這種特點(diǎn).

  在看下面這個(gè)例子之前,必須好好理解上面的例子.

  function Person(){this.name = "編程的人";this.age = 20;}function Student(){Person.call(this);this.school = "地球";}var student = new Student();//下面打印出來(lái): 編程的人,20,地球console.log(student.name,student.age,student.school);

  在這個(gè)例子里,Student函數繼承了Person的name和age屬性,就是通過(guò)Person.call(this)來(lái)實(shí)現,理解上面的例子后,應該是不難理解的.所以Student即擁有了Person的特點(diǎn),又有自己的個(gè)性,比如這個(gè)this.school.

  在這里,我們沒(méi)有涉及到加入參數的傳遞,是方便大家的理解,需要加入參數傳遞,大家可以敲代碼試一試,看看效果怎么樣!

  我們就先講這兩個(gè)例子吧,之后再進(jìn)行深入學(xué)習。

【Javascript的call、apply的理解】相關(guān)文章:

對javascript的理解08-08

理解JavaScript原型鏈教程09-02

javascript的閉包概念怎么理解06-15

javascript面向對象中的對象怎么理解09-02

淺談javascript中的單線(xiàn)程理解08-16

有關(guān)深入理解JavaScript中的并行處理的介紹10-14

常用的JavaScript模式09-22

Javascript的this用法簡(jiǎn)述08-15

JavaScript學(xué)習筆記08-24

JavaScript 基礎教學(xué)09-29

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看