JavaScript里的函數(shù)調(diào)用

一.函數(shù)調(diào)用形式:

function fun(){

alert ("123");

fun( );

var fun =function (){

alert ("123");

}

fun( );

函數(shù)調(diào)用也稱一般調(diào)用,在函數(shù)調(diào)用模式中,this關(guān)鍵字指的是全局對(duì)象,如果在瀏覽器中就是指的是window。

二.方法調(diào)用:

var fun=function(){

alert("1234");

};

var a={};

a.fn=fun;

a.fn();

var?func=function(){

console.log(this);

};

var?o={};

o.fn=func;

func();?//"[object?Window]"

o.fn();?//"[object?Object]"

console.log(o.fn===func);//true

這時(shí)調(diào)用的是對(duì)象a上面的方法fn,函數(shù)調(diào)用和方法調(diào)用的區(qū)別就是this關(guān)鍵字的指向,函數(shù)調(diào)用this指的是全局對(duì)象,方法調(diào)用中的this指的是當(dāng)前對(duì)象。

三.構(gòu)造器調(diào)用:

var?Person=function(){

this.name = ' 英雄聯(lián)盟 ' ; ?//此時(shí)的this是window

this.say = function(){

console.log ( "歡迎來到"+this.name );

};

};

var?p=new?Person() ; //new創(chuàng)建一個(gè)p對(duì)象

p.say(); //當(dāng)p調(diào)用say方法時(shí),this就是p對(duì)象。

在構(gòu)造函數(shù)中this指的是被創(chuàng)建的對(duì)象。

1.所有需要有對(duì)象使用的屬性,必須使用this引導(dǎo)。

var?Person=function(){

this.name='英雄聯(lián)盟';

return?{

name:'data'

}

};

var?p=new?Person();

console.log(p.name);//data

var?Person=function(){

this.name='英雄聯(lián)盟';

return?'data';

};

var?p=new?Person();

console.log(p);//"[object?Object]"

console.log(p.name); ? ? ? ? ?//'英雄聯(lián)盟'

2.函數(shù)的return語(yǔ)句意義被改寫,如果返回的是原意,那么保留return的意義,返回return后面的對(duì)象,如果返回非對(duì)象(字符串,數(shù)值,布爾等),就返回this,不指定return返回的也是this。

四.apply調(diào)用模式:

var?Person=function(){

this.name='英雄聯(lián)盟';

console.log(this);?//?"[object?Window]"

};

Person.apply(null); ? ?//使用了null

console.log(name);

var?Person2=function(){

this.name='英雄聯(lián)盟';

console.log(this);?//"[object?Object]"

};

var?o={} ; ? ? ? ? ? //使用了對(duì)象

Person2.apply(o);

console.log(o.name);

函數(shù)作為對(duì)象還有apply方法和call方法使用。

apply和call的區(qū)別就是apply中的參數(shù)是數(shù)組。

使用call和apply模式可以任意操作this的意義,在這個(gè)模式中如果使用了null,就是函數(shù)模式,如果使用了對(duì)象,就是方法模式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡(jiǎn)單...
    舟漁行舟閱讀 8,140評(píng)論 2 17
  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象,但只有一個(gè)實(shí)例,加載時(shí)并不主動(dòng)創(chuàng)建,需要時(shí)才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,321評(píng)論 1 10
  • 原文鏈接 Haskell和scala都支持函數(shù)的柯里化,JavaScript函數(shù)的柯里化還與JavaScript的...
    dreamapple閱讀 2,669評(píng)論 0 24
  • 長(zhǎng)久以來,面向?qū)ο笤?JavaScript 編程范式中占據(jù)著主導(dǎo)地位。不過,最近人們對(duì)函數(shù)式編程的興趣正在增長(zhǎng)。函...
    神刀閱讀 564評(píng)論 0 0
  • 如何控制alert中的換行?\n alert(“p\np”); 請(qǐng)編寫一個(gè)JavaScript函數(shù) parseQu...
    heyunqiang99閱讀 1,158評(píng)論 0 6

友情鏈接更多精彩內(nèi)容