亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

JavaScript

Javascript的call、apply的理解

時間:2024-10-26 05:10:24 JavaScript 我要投稿
  • 相關(guān)推薦

Javascript的call、apply的理解

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

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

  了解完這兩個方法的概念后,我們來一步一步理解他們的應(yīng)用.

  改變方法內(nèi)this的指向

  我們先來看下面這個例子

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

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

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

  實現(xiàn)繼承機制繼承,這是高級面向?qū)ο蟮囊环N特性,用call我們可以將JAVASCRIPT有這種特點.

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

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

  在這個例子里,Student函數(shù)繼承了Person的name和age屬性,就是通過Person.call(this)來實現(xiàn),理解上面的例子后,應(yīng)該是不難理解的.所以Student即擁有了Person的特點,又有自己的個性,比如這個this.school.

  在這里,我們沒有涉及到加入?yún)?shù)的傳遞,是方便大家的理解,需要加入?yún)?shù)傳遞,大家可以敲代碼試一試,看看效果怎么樣!

  我們就先講這兩個例子吧,之后再進行深入學(xué)習(xí)。

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

如何調(diào)試javascript腳本呢07-19

javascript跨域訪問的方法07-19

閱讀理解的答題技巧02-03

英語閱讀理解題09-22

英語閱讀理解帶翻譯03-21

高三英語閱讀理解06-08

初三英語閱讀理解06-14

怎樣理解網(wǎng)球運動12-13

中考英語閱讀理解及解析03-25

對項目管理的理解和認識04-10