欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript 函數(shù)的四種調(diào)用模式

 更新時間:2016年11月05日 09:03:07   投稿:lqh  
這篇文章主要介紹了Javascript 函數(shù)的四種調(diào)用模式的相關(guān)資料,需要的朋友可以參考下

Javascript 函數(shù)的四種調(diào)用模式

1  函數(shù)模式

     最普通的函數(shù)調(diào)用

// 聲明式函數(shù)
function fn1 () {
   console.log(this);
}
// 函數(shù)表達式函數(shù)
var fn2 = function() {
   console.log(this);
};
// 調(diào)用 函數(shù)中this表示全局對象,在瀏覽器中就是指window
fn1();   //window
fn2();   //window

 2 方法模式

     函數(shù)依附于一個對象,是對象的一個屬性,我們再調(diào)用這個函數(shù)。這種模式就是方法調(diào)用模式。

var obj = {
  name: "zhangSan",
  sayHi: function () {
    console.log(this);
  }
};
obj.sayHi(); //obj對象

3 構(gòu)造器調(diào)用模式

即是構(gòu)造函數(shù)的調(diào)用,一般是通過new + 函數(shù)名( ),這種模式和以上的方法模式?jīng)]本質(zhì)的區(qū)別

function Person() {}
var tom = new Person(); // 這就是構(gòu)造器函數(shù)的調(diào)用 

// 構(gòu)造函數(shù)調(diào)用的詳細(xì)過程
// 1 會在內(nèi)部創(chuàng)建一個對象o
// 2 給對象賦值(this), 然后執(zhí)行各種操作
// 3 返回這個對象o


// 構(gòu)造函數(shù)的返回值:
 //
 //  有一個默認(rèn)的返回值,新創(chuàng)建的對象(實例);
 //  當(dāng)手動添加返回值后(return語句):
 //     1. 返回值是基本數(shù)據(jù)類型-->真正的返回值還是那個新創(chuàng)建的對象(即實例)
 //    2. 返回值是復(fù)雜數(shù)據(jù)類型(對象)-->真正的返回值是這個對象

4 上下文模式

本質(zhì)--對象借用不屬于該對象的方法(函數(shù)),即我們自定義this的指向

這時候就需要call和apply這兩個方法

//Function.prototype.call ()
  //Function.prototype.apply ()
  //——>任何函數(shù)都可以調(diào)用call和apply方法

  // 第一個參數(shù)控制this的指向,第二個參數(shù):
        在使用 上下文調(diào)用的 時候, 原函數(shù)(方法)可能會帶有參數(shù), 那么這個參數(shù)在上下文調(diào)用中使用 第二個( 第 n 個 )參數(shù)來表示
//偽數(shù)組
  var o={ 0:10,1:20,length:2 };

  //讓o對象借用數(shù)組的push方法來添加元素
  //[].push.call(o,30,50,70)
  [].push.apply(o,[1,2,3])
  console.log(o);//其中對象o中l(wèi)ength屬性的值也會改變的哦

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論