日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript函数调用的四种模式

發布時間:2023/12/4 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript函数调用的四种模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Javascript一共有四種調用模式:方法調用模式、函數調用模式、構造器調用模式以及apply調用模式。調用模式不同,對應的隱藏參數this值也會不同。

  函數作為對象的屬性時,稱為方法。此時函數(即方法)中的this對應是該對象。

var myObject = {value:3,
  func:function(){
    alert(this.value);
  }
   };

myObject.func();  //3

  也可以寫成如下格式:

var myObject = {value:3 };myObject.func = function() {alert(this.value); }

myObject.func();  //3

  上面,this對應的是myObject對象。

?

  三  函數調用模式

  函數調用模式即通常的函數調用,屬于全局性調用,此時this對應的是全局對象,即Window對象。

var add = function(a, b) {return a + b; }add(3,4); //7

  上面也可以寫成

window.add = function(a, b) {return a + b; }

add(3,4); //7

  下面來看看下面的測試題,以檢驗你是否了解了this。

<script type="text/javascript">var add = function(a, b) {return a + b;}var myObject = {value:3};myObject.func = function() {var helper = function() {this.value = add(this.value, this.value); }helper();//alert(this.value);}
   myObject.func();alert(myObject.value);</script>

  答案會是6嗎?仔細想想。

  答案為6的程序應該是這樣的:

<script type="text/javascript">var add = function(a, b) {return a + b;}var myObject = {value:3};myObject.func = function() {var that = this; // this對應myObject對象 (1)var helper = function() {//this.value = add(this.value, this.value); //這里調用模式為函數調用模式,而非方法調用模式,所以this對應全局對象 (2)that.value = add(that.value, that.value); }helper();//alert(this.value);}myObject.func();alert(myObject.value);</script>

  (1)處this在firefox調試如下:

  

  (2)處this在firefox調試如下:

  

?

  四  構造器調用模式

  若在函數前面通過new 來調用,其實是生成一新對象,this自然指向該新對象。

var add = function(a, b) {return a + b; }var obj = new add(3, 4);

  obj為一對象:

  

?

  五  apply調用模式

apply方法有個參數,第一個是要綁定給this的值,第二個是一個參數數組。 var sum = add.apply(null,[3,4]); // this對應全局變量,即window對象 var sum2 = add.apply(myObject,[3,4]); //this對應為myObject對象

?

  六  源碼

?  源碼下載。

?

 出處:http://www.cnblogs.com/chenyuming507950417/

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Javascript函数调用的四种模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。