js函數(shù)和this用法實(shí)例分析
本文實(shí)例講述了js函數(shù)和this用法。分享給大家供大家參考,具體如下:
js的所有代碼都是由funtion組成,funtion即函數(shù)的類型。
一.函數(shù)有兩種寫法
-----1.定義式
function test() { //定義一個(gè)函數(shù) console.log("function test called!!"); }
-----2.變量式
var test2 = function () { console.log("var test2 function called!!"); };
我們可以調(diào)用typeof()查看類型
var type = typeof(test2); console.log(type); //function
二.函數(shù)也是對(duì)象
-----1.函數(shù)既然是對(duì)象,即就可以有屬性和功能。函數(shù)也可以動(dòng)態(tài)的增加屬性,如下:
function test() { console.log("function test() called!!!"); } test.user_name = "zhangsan"; console.log(test.user_name); //zhangsan
三.函數(shù)的實(shí)例化
函數(shù)的實(shí)例化也有兩種方式:
---------1.直接在函數(shù)名后面加上"()" @@@@@常用這種方式
function test() { console.log("function test() called!!!"); } test(); //function test() called!!!
---------2.使用關(guān)鍵字"new"進(jìn)行實(shí)例化
function test() { console.log("function test() called!!!"); } new test(); //function test() called!!!
四.this機(jī)制
//=====================this機(jī)制================== function my_func(rhs, lhs) { console.log(this, rhs, lhs); } //顯示不確定的this //my_func(); //console顯示 //--------------顯示傳遞this----------- //函數(shù)名.call(this,參數(shù)...) 顯示傳遞this my_func.call({ 0: "jade" }, 2, 3); //------------------------------------ var tools = { my_func: my_func, }; //表.key() --->this是表 tools.my_func(2, 3); //this是tools // 相當(dāng)于 tools.my_func.call(tools, 2, 3); //強(qiáng)制綁定this,優(yōu)先級(jí)最高 //函數(shù).bind,不會(huì)改變?cè)瓉砗瘮?shù)對(duì)象的this,而是會(huì)產(chǎn)生一個(gè)新的臨時(shí)的對(duì)象 //bind好了this var new_func = my_func.bind({ name: "jade" }); new_func(3, 4); tools.my_func = new_func; tools.my_func(3, 4); //this是表{name:"jade"} my_func(3, 4); //this不變,consloe //====call與bind有什么區(qū)別呢?== //bind最牛的地方是什么?是綁定this的時(shí)候, //不是由調(diào)用者來決定的 new_func.call({ 0: 1 }, 3, 4); //this還是表{name:"jade"},不是{0:1} //==================總結(jié)============================= //在函數(shù)里面訪問this,this是由調(diào)用的環(huán)境來決定的,不確定,一般不使用 //1.顯示的傳遞this,函數(shù).call(this對(duì)象,參數(shù)) //2.隱式的傳遞this,表.key_函數(shù)(參數(shù)),this---》表 //3.bind優(yōu)先級(jí)別是最高的
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 改變javascript函數(shù)內(nèi)部this指針指向的三種方法
- JS函數(shù)this的用法實(shí)例分析
- 詳解JS構(gòu)造函數(shù)中this和return
- JavaScript函數(shù)中的this四種綁定形式
- JavaScript 嵌套函數(shù)指向this對(duì)象錯(cuò)誤的解決方法
- 深入理解Javascript箭頭函數(shù)中的this
- js對(duì)象內(nèi)部訪問this修飾的成員函數(shù)示例
- 深入理解js函數(shù)的作用域與this指向
- JS匿名函數(shù)內(nèi)部this指向問題詳析
- 淺談Javascript中的函數(shù)、this以及原型
- JavaScript箭頭函數(shù)中的this詳解
相關(guān)文章
js showModalDialog彈出窗口實(shí)例詳解
本篇文章主要是對(duì)js showModalDialog彈出窗口進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01js實(shí)現(xiàn)隨機(jī)點(diǎn)名系統(tǒng)(實(shí)例講解)
下面小編就為大家?guī)硪黄猨s實(shí)現(xiàn)隨機(jī)點(diǎn)名系統(tǒng)(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10JS實(shí)現(xiàn)自動(dòng)變化的導(dǎo)航菜單效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)自動(dòng)變化的導(dǎo)航菜單效果代碼,涉及JavaScript基于定時(shí)函數(shù)觸發(fā)頁面元素屬性動(dòng)態(tài)變換的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09如何將一個(gè)String和多個(gè)String值進(jìn)行比較思路分析
開發(fā)中我們經(jīng)常需要將一個(gè)String和多個(gè)String值進(jìn)行比較。直覺反應(yīng)是使用||符號(hào)連接多個(gè)===完成,感興趣的朋友可以了解下哈2013-04-04javascript通過class來獲取元素實(shí)現(xiàn)代碼
javascript獲取元素有很多的方法,本文簡單的介紹下通過class獲取元素的實(shí)現(xiàn)代碼,感興趣的朋友可以參考下,希望本文知識(shí)點(diǎn)可以幫助到你2013-02-02