为了账号安全,请及时绑定邮箱和手机立即绑定

javascript中有指针吗?

javascript中有指针吗?

米脂 2019-12-02 10:56:51
我以前使用过C ++,并且意识到指针非常有用。javascript中有没有像指针一样的东西?javascript是否有指针?我想使用类似以下内容的指针:var a = 1;var b = "a";document.getElementById(/* value pointed by b */).innerHTML="Pointers";我知道这是一个非常简单的示例,我可以使用a,但是在几个更复杂的示例中,我发现指针非常有用。有任何想法吗?
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

您打赌JavaScript中有指针;对象是指针。


//this will make object1 point to the memory location that object2 is pointing at

object1 = object2;


//this will make object2 point to the memory location that object1 is pointing at 

function myfunc(object2){}

myfunc(object1);

如果不再指向存储位置,则该位置的数据将丢失。


与C语言不同,您看不到指针的实际地址或指针的实际值,只能取消引用它(在它指向的地址处获取值)。


查看完整回答
反对 回复 2019-12-02
?
HUH函数

TA贡献1836条经验 获得超4个赞

由于JS的本质,即按值(如果完全更改了引用对象)或通过引用(如果更改了引用对象的字段)传递对象,则不可能完全替换引用的对象。


但是,让我们使用可用的方法:替换引用对象的单个字段。通过执行此操作,以下功能可实现您的要求:


function replaceReferencedObj(refObj, newObj) {

    let keysR = Object.keys(refObj);

    let keysN = Object.keys(newObj);

    for (let i = 0; i < keysR.length; i++) {

        delete refObj[keysR[i]];

    }

    for (let i = 0; i < keysN.length; i++) {

        refObj[keysN[i]] = newObj[keysN[i]];

    }

}

对于user3015682给出的示例,您将使用以下功能:


replaceReferencedObj(foo, {'bar': 2})


查看完整回答
反对 回复 2019-12-02
  • 3 回答
  • 0 关注
  • 1128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号