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

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

【问题讨论】:

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

标签: jquery c++ memset


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

    补充阅读:

    【讨论】:

      猜你喜欢
      • 2011-01-08
      • 2020-12-09
      • 2011-07-26
      • 2013-10-08
      • 2012-07-31
      • 2016-03-31
      • 2012-12-22
      • 2010-10-20
      相关资源
      最近更新 更多