blog.Ring.idv.tw

變數範圍-在「Function」上用「var」來宣告變數的差異(三)

變數範圍-在「Function」上用「var」來宣告變數的差異(三)

在「變數範圍-在「Function」上用「var」來宣告變數的差異(一)」一文中,我們曾提及在「Function」加上「var」宣告,才是明確的定義此變數為「區域變數」,否則便是「實體(時間軸)變數」,倘若我們少打了「var」來宣告的話,那會造成多大的影響呢?這裡我們就來比較一下兩者間的執行速度。

存取「區域變數」遠比「實體(時間軸)變數」快

區域變數

function test()
{
	var i = 10;
	for(var j = 0 ; j < 100000; j++)
	{
		i+=j;
	}
}
var start = getTimer();
test();
trace(getTimer()-start);

結果:(取決於電腦速度而有所不一)

114

實體(時間軸)變數

function test()
{
	i = 10;
	for(var j = 0 ; j < 100000; j++)
	{
		i+=j;
	}
}
var start = getTimer();
test();
trace(getTimer()-start);

結果:(取決於電腦速度而有所不一)

233

從結果來看,由於區域變數會使用到Flash Player內部所提供的暫存器來儲存之,造成兩者在上述的範例測試中,執行速度差距有二倍之多(114ms vs. 233ms),所以不可不慎!~

2007-06-29 17:38:37

Leave a Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment