2012-11-23 48 views
1

我曾在C++中使用過memset(),絕對不需要在這裏介紹這個函數。現在我想知道什麼是memset()在jQuery中的等效函數?我搜索了互聯網,但無法找到任何東西。jquery中是否有任何等價的函數呢?在jQuery中相當於C++ memset()

+7

JavaScript沒有指針,不會允許你訪問對象的底層二進制表示直接,所以沒有'memset'的等價物。你可以遍歷所有對象的成員並將它們設置爲'null',但這是一種非常不同的變異。 –

回答

3

現在我想知道什麼是jQuery中的memset()等效函數?

沒有JavaScript相當於memsetmemset是一個低級C函數,其實現和接口依賴於您可以訪問變量的地址和內存表示的事實。

這兩個前提條件都不適用於JavaScript。你可以實現一些東西,將對象的內部元素設置爲null和零(基於反射/元數據),但這是一個完全不同的問題。

1

在C++中,memset()是一個函數,可用於以簡單,蠻力的方式初始化數組或其他對象。有些情況下使用JavaScript,你想做的事情基本相同。

下面是幾個如何定義這種功能的例子。傳遞一個簡單數組時,每行都會完成工作。其中一些可能也適用於其他對象類型。第一行(jQuery.each)可能是最有效且通用的(假設你有jQuery)。

function memset(object, value) 
    { 
    jQuery.each(object, function(i,v){ object[i]=value; }); 
// jQuery(object).each(function(i,v){ object[i]=value; }); 
// for (var i=0; i<object.length; i++) object[i]=value; 
// for (var i in object) object[Number(i)]=value; 
    } 

如C++,這memset()是一個低級別的操作,並且它使用應限制於基本上是「plain-old-data」對象 - 簡單陣列作爲典型的例子。

補充閱讀: