草庐IT

可变引用

全部标签

javascript - 作为参数传递给函数的 jQuery 对象是值副本而不是引用?

我的理解:在Javascript中,对象和数组作为引用而不是函数参数的值传递。jQuery组是一个对象,因此应作为引用传递。但是我在下面的测试脚本中发现发生了一些奇怪的事情;除非包裹在另一个对象中,否则jQuery组的行为就像一个值而不是一个引用......任何人都可以解释这一点吗?functiontest(arg){arg=arg.add($(''))console.log(arg);};ele=$('');test(ele);//div+spaninthegroupasexpectedconsole.log(ele);//onlythediv-the'arg'paraminfunc

javascript - 在保留对象引用和继承的同时组织原型(prototype) javascript

我使用JavaScript原型(prototype)和继承构建了一个大型应用程序。但是我很难组织我的代码。例如,我有一个类轮播,它有很多这样的功能:Carousel.prototype.next=function(){...}Carousel.prototype.prev=function(){..}Carousel.prototype.bindControls=function(){..}我想这样组织我的代码:Carousel.prototype.controls={next:function(){...},prev:function(){...},bindControls:func

javascript - 将对象引用保存到数组的性能问题

为什么v1比v2慢这么多?v1--varfoo=function(a,b,c){this.a=a;this.b=b;this.c=c;}varpcs=newArray(32);for(varn=32;n--;){ref=newfoo(1,2,3)pcs[n]=ref;//*****}v2--varfoo=function(a,b,c){this.a=a;this.b=b;this.c=c;}varpcs=newArray(32);for(varn=32;n--;){ref=newfoo(1,2,3)pcs[n]=1;//*****}我认为,因为我在“ref”中持有对新对象的引用,所以简

javascript - TypeScript 可更新和枚举引用

我有一个用JavaScript编写的外部SDK,我正在使用它。这些模块之一,Blob是可更新的,但也公开了一个枚举FooEnum(成员Bar和Baz).在JavaScript中使用此SDK的代码如下:constblobInstance=newSdk.Blob();constfooType=Sdk.Blob.FooEnum.Baz;我现在正在尝试编写一个接口(interface),我可以将此SDK转换到该接口(interface),以提供一些类型安全性。这是我到目前为止所得到的:interfaceBlobInterface{}enumFoo{Bar,Baz}interfaceSdk{Bl

javascript - bind() 会改变函数引用吗? |如何设置永久?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Removingeventlistenerwhichwasaddedwithbind我需要动态添加和删除事件监听器。我还需要设置this。这会改变函数引用吗?element.addEventListener('click',funcA);newFunc=funcA.bind(this);element.removeEventListner('click',newFunc);removeEventListener会知道我要删除funcA吗?还是它认为我要一起删除一个新函数?

javascript - 如何重新实现 'var that = this' 以使用 Object.prototype.bind() 保存范围引用?

在SecretsofJavascriptClosures,StuartLangridge提供了一段代码来演示闭包在.onclick回调中的常见用法,并解释如下:link.onclick=function(e){varnewa=document.createElement("a");varthat=this;document.body.appendChild(newa);newa.onclick=function(e){that.firstChild.nodeValue="reset";this.parentNode.removeChild(this);}}我最近偶然发现了KyleSim

javascript - 在 JavaScript 的回调中传递可变参数的正确方法?

我觉得这应该在互联网上的某个地方得到解答,但我没有找到它,可能是因为我没有搜索正确的术语,但这就是问题所在:我有以下功能:functionParentFunction(DataBase,Parameters){for(k=0;k我在succesFunction(data,k,Parameters)中遇到错误,因为“k”始终使用最新值进行评估。发生的事情是,当for循环运行时k正确增加,但是当执行回调函数successFunction时,通常是在循环完成后几毫秒,它总是用k的最后一个值而不是调用$.ajax的循环。我通过创建另一个包含ajax调用的函数来解决这个问题。它看起来像这样:fu

javascript - Object.assign 保留对原始对象的引用

这个问题在这里已经有了答案:HowdoIcorrectlycloneaJavaScriptobject?(80个答案)关闭7年前。我有方法:exportconstgroupActivities=({activities,tags,images,tickets})=>{if(!activities||!tags){console.error('Musthaveactivitiesandtags');}constgroupActivities=Object.assign({},activities);constgroups=groupByTags({activities:groupActi

javascript - Typescript es6 模块重新导出可变变量绑定(bind)

我正在尝试使用es6模块语法重新导出变量,然后更改它并查看最终导入中反射(reflect)的更改。但它没有按预期工作。请参见下面的示例:a.tsexportvara=1;exportfunctionchangeA(){a=2;}b.tsexport*from'./a';c.tsimport{a,changeA}from'./b';console.log(a);//1changeA();console.log(a);//Expected2butget1tsconfig.json{"compilerOptions":{"target":"es5","module":"commonjs","

javascript - Syncano Codebox - 调用 API - 解析 JSON - 获取引用 - 保存新对象

我将Syncano用作baas,我试图调用外部API来接收JSON数组。这个JSON需要被解析,然后存储在syncano中。在此之前,我需要从数据库接收引用对象以将其链接到新的团队对象。我成功收到团队(json)数组和引用对象。但是我无法存储新数据,因为只有12-14个团队(必须是18个)被保存。我用promise尝试了这个和那个,但没有成功。任何人都可以建议如何重写代码以存储所有数据?谢谢-这是我目前所拥有的...//TODO:getfromARGSwhenexecutingthiscodeboxvarteamKey=394;varrequestURL='http://api.foo