1. 程式人生 > >JS定義一個立即執行的可重用函式

JS定義一個立即執行的可重用函式

return this如何?

第一反應是,加一個return this試試?

testFun = ( function() {
  ...
  return this;
})(); //該函式仍舊定義後立即被執行一次

在同一個JS檔案的其它地方重新呼叫該函式

testFun();//沒有效果

依舊沒有任何效果,還是用typeof測試一下

alert(typeof(testFun)); //Object

為何return this後該“函式表示式”是一個Object而不是function呢?

這是因為return this的this指向的是window!

相關推薦

JS定義一個立即執行重用函式

return this如何? 第一反應是,加一個return this試試? testFun = ( function() { ... return this; })(); //該函式仍舊定義後立即被執行一次 在同一個JS檔案的其它地方重新呼叫該函式 testFun();//沒有

js中(function(){…})()立即執行函式寫法理解

javascript和其他程式語言相比比較隨意,所以javascript程式碼中充滿各種奇葩的寫法,有時霧裡看花,當然,能理解各型各色的寫法也是對javascript語言特性更進一步的深入理解。 ( function(){…} )()和( function (){…} ()

js 中的立即執行函式

文章目錄 相信大家經常會遇到下面這兩種寫法: (function(){ ... })() 和 (function(){ ... }()) 關於這樣寫是什麼意思呢?有什麼區別呢? 在此之前,我們需要了解幾個概念: 函式宣告、函式表示式、匿名函式 函式宣告:

js中(function(){…})()立即執行函數寫法理解

original 奇葩 ive weixin 立即執行 har 匿名 facebook placement 轉自:https://segmentfault.com/a/1190000003031456 javascript和其他編程語言相比比較隨意,所以javascrip

js定義一個處理字符串的函數

array append tr1 join RR length end var col //定義一個處理字符串的方法 function StringBuffer(str){ var arr = []; str = str || ‘‘; arr.pu

JS中的立即執行函數

作用 new spa 試題 一個 作用域 報錯 無法訪問 ++ JS 立即執行函數可以讓函數在創建後立即執行,這種模式本質上就是函數表達式(命名的或者匿名的),在創建後立即執行。 1、立即執行函數的寫法 立即執行函數通常有下面兩種寫法: (function(){

js---作用域鏈,立即執行函式,閉包

1.作用域鏈----函式 定義時會獲得 父級的作用域鏈的值放在自己的 [[Scopes]]屬性中, [[Scopes]]是系統自帶的隱式屬性,通過console.dir(函式名)   可以檢視這個函式的作用域鏈,即 [[Scopes]]。任何函式都至少會

js立即執行函式: (function ( ){})( ) 與 (function ( ){}( )) 有什麼區別?

這篇文章主要介紹了js立即執行函式: (function ( ){})( ) 與 (function ( ){}( )) 有什麼區別,需要的朋友可以參考下 沒有區別。 你需要明白 IIFE 的原理,我簡單說一下: 複製程式碼 程式碼如下: function foo() {...} &

js函式、作用域、作用域鏈、閉包、立即執行函式

1.函式 定義 1.函式宣告 ```java function test(){ 函式體 }; 2.函式表示式: - 命名函式表示式 - ```java var fn = function test(){}; (匿名)函式表示式 var fn = function(){};

js 立即執行函式

立即執行函式 目錄 立即執行函式 作用 引數 返回值 立即執行函式 立即執行函式模式是一種語法,可以讓你的函式在定義後立即被執行。 立即執行函式的組成 定義一個函式 將整個函式包裹在一對括號中 將函式宣告轉換為表示式 在結尾加上一對括號 讓函式立即被執

深入理解JS立即執行函式

1.什麼是立即執行函式(IIFE) 在瞭解立即執行函式之前先明確一下函式宣告、函式表示式及匿名函式的形式,如下圖: 接下來看立即執行函式的兩種常見形式: ( function(){…} )()  和  ( function (){…} () ) ,一個是一個匿名函式包裹在一個括號運

js關於立即執行函式的一點記錄

( function(){…} )()和( function (){…} () )是兩種javascript立即執行函式的常見寫法,最初我以為是一個括號包裹匿名函式,再在後面加個括號呼叫函式,最後達到函式定義後立即執行的目的,後來發現加括號的原因並非如此。要理解立即執行函

JS-立即執行函式表示式(IIFE)

javascript函式呼叫 在javascript中,每一個函式在被呼叫的時候都會建立一個執行上下文,在該函式內部定義的變數和函式只能在該函式內部被使用,而正是因為這個上下文,使得我們在呼叫函式的時候能建立一些私有變數。 先聲明後呼叫 // 宣告: var foo = function(){

關於JS立即執行函式的一處使用場景

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style&g

JS-立即執行函式(function(){...})() && (function(){...})()

在學習閉包的過程中遇到了(立即執行),之前見到(function(){...})() && (function(){...}())這種寫法,就沒有去知其所以然,也不會去寫這種函式。所以一直害怕js,但還是要學習瞭解的,基本概念一定都要知道,才能自己造輪子,而不

js立即執行函式

 看過jQuery原始碼的人應該知道,jQuery開篇用的就是立即執行函式。立即執行函式常用於第三方庫,好處在於隔離作用域,任何一個第三方庫都會存在大量的變數和函式,為了避免變數汙染(命名衝突),開發者們想到的解決辦法就是使用立即執行函式。 1.什麼是立即執行函式(IIFE

js立即執行函式(function ( ){})( ) 與 (function ( ){}( )) 區別

結論:沒有區別。 下面說下立即執行函式表示式(IIFE)的原理: function foo(){...} //這是函式定義,直譯器遇到它的時候,不會執行; foo(); //這是語句,直譯器遇到語句會執行它。這種寫法是傳統寫法,定義和執行分開,也很好理解。那為什麼還要有

js 立即執行函式表示式 問題

js 語言有許多黑科技。一般像想象中的這樣的程式碼 function(para){ .... }(realPara) 定義函式的同時再進行呼叫,在瀏覽器中會報錯。常見的變為立即執行函式的方法是加’適當的括號‘,如 (function(va

js函式宣告/函式表示式/匿名函式/箭頭函式/立即執行函式

   function add(a, b) { // ... } 1.顧名思義,宣告一個函式, 用關鍵字 “function” 來告訴,這是一個函式。 2.任何地方,想用就可以拿過來使用   函式表示式: var add = function (){

js立即執行函數應用--事件綁定

content tps mar set span lang function solid tcs js中立即執行函數的應用:應用到事件綁定上。 少說多做,直接運行代碼(代碼中有註釋): 1 <!DOCTYPE html> 2 <html lang="