使用方法一: 復制代碼 代碼如下: var foo01 = function() //or fun01 = functio " /> 精品一区二区三区毛片,国产一级在线播放,欧美黄色a视频

四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

function, new function, new Function之間的區別

函數是JavaScript中很重要的一個語言元素,并且提供了一個function關鍵字和內置對象Function,下面是其可能的用法和它們之間的關系。

    使用方法一: 
復制代碼 代碼如下:
 var foo01 = function() //or fun01 = function() 
 { 
     var temp = 100; 
     this.temp = 200; 
     return temp + this.temp; 
 } 

 alert(typeof(foo01)); 
 alert(foo01()); 
   運行結果:
 function
 300    最普通的function使用方式,定一個JavaScript函數。兩種寫法表現出來的運行效果完全相同,唯一的卻別是后一種寫法有較高的初始化優先級。在大擴號內的變量作用域中,this指代foo01的所有者,即window對象。

    使用方法二: 
 復制代碼 代碼如下:
var foo02 = new function() 
 { 
     var temp = 100; 
     this.temp = 200; 
     return temp + this.temp; 
 } 

 alert(typeof(foo02)); 
 alert(foo02.constructor());    
運行結果:  object
 300    這是一個比較puzzle的function的使用方式,好像是定一個函數。但是實際上這是定一個JavaScript中的用戶自定義對象,不過這里是個匿名類。這個用法和函數本身的使用基本沒有任何關系,在大擴號中會構建一個變量作用域,this指代這個作用域本身。

    使用方法三:  復制代碼 代碼如下:
var foo3 = new Function('var temp = 100; this.temp = 200; return temp + this.temp;'); 

 alert(typeof(foo3)); 
 alert(foo3());    
運行結果:  function
 300    使用系統內置函數對象來構建一個函數,這和方法一中的第一種方式在效果和初始化優先級上都完全相同,就是函數體以字符串形式給出。

    使用方法四: 
 復制代碼 代碼如下:
var foo4 = Function('var temp = 100; this.temp = 200; return temp + this.temp;'); 

 alert(typeof(foo4)); 
 alert(foo4());    
運行結果:
function
300    這個方式是不常使用的,效果和方法三一樣,不過不清楚不用new來生成有沒有什么副作用,這也體現了JavaScript一個最大的特性:靈活!能省就省。

    關于函數初始化優先級這個問題,可以參看:"JS類定義原型方法的兩種實現的區別"的回復。

JavaScript技術function, new function, new Function之間的區別,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 电视剧《浮沉》免费完整版| 萱草花二声部合唱谱| n开头的字| 夏日福星 电影| 赖小子| 李耀| 口舌 — 视频 | vk| 囚徒 电影| 李洋简介| 库存管理软件| 真田太平记| 柏欣彤12点以后跳的广场舞| 郭德纲7000字微博原文| 欧美13| 范海辛电影原声在线观看免费| 我们的快乐人生 电视剧| 二胡独奏我的祖国| 抓特务| junk boy| 爱四| 哥哥啊啊啊| 蛇魔女大闹都市| 温州新闻| 睡前搞笑故事| 辩论稿| 电视剧《绿萝花》| 各各他的爱的歌谱| 黄明昊身高| 山村老尸图片| 一句话让老公下面硬| bobo视频| 台版缉魂2小时10分版网飞版| 鲁迅电影| 葛思然| 丹尼尔·吉里斯| 去分母解一元一次方程100道及答案 | 女同性恋视频网站| 与妻书 电影| 拔萝卜无删减| 素珍| 王牌特派员|