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() 等效项的主要内容,如果未能解决你的问题,请参考以下文章