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

首頁 > 語言 > JavaScript > 正文

理解Javascript的call、apply

2024-05-06 16:26:28
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Javascript的call、apply,其作用基本相同,但也有略微的區別,需要的朋友可以參考下
 

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

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

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

改變方法內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

這兩種調用執行的方式不一樣,他們的結果也不一樣,不一樣在于say方法里面的this指向了不同的對象,第一次執行指向的是window,而我們以call方式執行,將say方法里面的this指向了person對象.
這是不是有點冒充別人的感覺.那我們這樣有什么作用了?當然自己可以多多想想,到底能做什么! 我們繼續往下面走.

實現繼承機制
繼承,這是高級面向對象的一種特性,用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函數繼承了Person的name和age屬性,就是通過Person.call(this)來實現,理解上面的例子后,應該是不難理解的.所以Student即擁有了Person的特點,又有自己的個性,比如這個this.school.

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

我們就先講這兩個例子吧,之后再進行深入學習。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 日韩一级网站 | 亚洲精品7777xxxx青睐 | 欧美 国产 亚洲 卡通 综合 | 成人免费观看av | 精品国产视频一区二区三区 | 亚洲国产高清视频 | 4p嗯啊巨肉寝室调教男男视频 | 在线小视频国产 | 毛片一区二区三区四区 | 日本在线视 | 本站只有精品 | 九九视屏| 毛片免费看电影 | 国产精品久久久久影院老司 | 久久久一区二区精品 | h视频在线观看免费 | 91成人在线免费观看 | 久久亚洲精品国产一区 | 91久久在线观看 | 成人国产精品齐天大性 | 成人午夜在线免费观看 | 爱高潮www亚洲精品 国产精品一区自拍 | 国产精品成人免费一区久久羞羞 | 国产成人自拍视频在线 | 精品国产91久久久久久久妲己 | av在线视| 小雪奶水翁胀公吸小说最新章节 | 中文字幕线观看 | 依依成人综合 | 91美女视频在线观看 | 精品久久久久久 | 久草在线资源福利站 | 羞羞视频免费网站含羞草 | 日本高清com | 日韩视频在线视频 | 国内精品久久久久久影视8 嫩草影院在线观看网站成人 | 又黄又爽又色无遮挡免费 | 青青草成人影视 | 久久新地址 | 12av毛片 | 国产午夜三级一区二区三桃花影视 |