jQuery 中的 C++ memset() 等效项

Posted

技术标签:

【中文标题】jQuery 中的 C++ memset() 等效项【英文标题】:C++ memset() equivalent in jQuery 【发布时间】:2012-11-23 14:15:05 【问题描述】:

我在C++中工作过memset(),这个函数肯定不需要在这里介绍。现在我想知道jQuery中的memset()等价函数是什么?我在网上搜索了但找不到任何东西。jquery中是否有任何等效功能?

【问题讨论】:

javascript 没有指针,也不允许您直接访问对象的底层二进制表示,因此没有 memset 的等价物。您可以遍历对象的所有成员并将它们设置为 null,但这是一种非常不同的变异方式。 【参考方案1】:

现在我想知道 jQuery 中的 memset() 等效函数是什么?

没有与memset 等效的javascript。 memset 是一个低级 C 函数,其实现和接口依赖于您可以访问变量的地址和内存表示的事实。

这两个前提条件都不适用于 javascript。您可以实现将对象的内部设置为 null 和零(基于反射/元数据)的东西,但这是完全不同的问题。

【讨论】:

【参考方案2】:

在 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”的对象——简单的数组就是主要示例。

补充阅读:

http://api.jquery.com/jQuery.each http://api.jquery.com/each https://***.com/a/1229010/86967 What are POD types in C++?

【讨论】:

以上是关于jQuery 中的 C++ memset() 等效项的主要内容,如果未能解决你的问题,请参考以下文章

与memset函数等效的Linux内核是什么?

memset() 在 C++ 中的工作原理

C++中char指针中的memset的分段错误(核心转储)[重复]

等效于 jQuery 中的 String.format

等效于 C++ 中的 Regex.Replace

Angular2 中的 jQuery .slideUp() 和 .slideDown() 等效项