草庐IT

Math对象

全部标签

javascript - 为什么不对对象属性使用闭包?

我目前正在用javascript编写对象,我希望使用最佳实践等以一种清晰、漂亮的方式来完成它。但我很烦恼我必须始终将this.写到地址属性,与其他OO语言不同。所以我想到了-为什么不对对象属性使用闭包?看看我的示例对象。所以不是这样,经典的方式:varMyObjConstructor=function(a,b){//constructor-initializationofobjectattributesthis.a=a;this.b=b;this.var1=0;this.var2="hello";this.var3=[1,2,3];//methodsthis.method1=funct

javascript - JavaScript 对象的生命周期和内存泄漏

我对此进行了很多研究,但主要是通过将其他问题拼凑在一起,这仍然存在一些疑问。在一个不会随时刷新浏览器页面并且可能会持续很长一段时间(几个小时)而不关闭的应用程序中(假设刷新页面或导航到另一个页面会重新启动js代码),确保对象的最佳方法是什么释放并且没有内存泄漏。这些是我关心的具体场景:下面的所有代码都在一个揭示模块模式中。mycode=function(){}()函数内的变量,我敢肯定这个被GC收集得很好function(){varh="ss";}模块内的变量,当不再需要时g=null?varg;function(){g="dd";}最后是jqXHR的生命周期:它返回后是否被清理?是否

javascript - 在没有对象包装器的情况下使用 Jquery $.grep 过滤对象数组

过滤适用于环绕对象数组的对象(data):vararr={"data":[{"name":"Alan","height":"171","weight":"66"},{"name":"Ben","height":"182","weight":"90"},{"name":"Chris","height":"163","weight":"71"}]};varnew_arr=$.extend(true,arr);new_arr.data=$.grep(new_arr.data,function(n,i){returnn.weight>70;});alert(new_arr.data.lengt

javascript - JSON.parse 使用嵌套对象解析 JSON

我正在尝试使用在发布请求的响应中收到的嵌套对象来解析JSON字符串。运行JSON.parse(responseText)后,结果格式如下:[{"atco":"43000156407","location":{"longitude":"-1.7876500000000000","latitude":"52.4147200000000000","timestamp":"2013-03-1911:30:00"},"name":"SolihullStationInterchange","road":"STATIONAPPROACH","direction":"NA","locality":"S

声明前在 Google Chrome 控制台中记录的 Javascript 对象属性

这个问题在这里已经有了答案:WhydoesjavascriptobjectshowdifferentvaluesinconsoleinChrome,Firefox,Safari?[duplicate](1个回答)IsChrome’sJavaScriptconsolelazyaboutevaluatingobjects?(7个答案)关闭9年前。我一直在使用GoogleChromeversion28.0.1500.95m测试一些JavaScriptconsole并且我希望对它的工作原理有更多的了解:看看下面的代码:varobj={a:99,f:function(){}}console.lo

JavaScript 对象函数和 `this` 未绑定(bind)并在表达式/括号中返回时

根据返回的this,第1-2行和第4-5行是有意义的。关于第3行,我缺少什么?我认为它会返回类似于第4-5行的window。在这5个中是否还有其他模式可以帮助证明原因?foo={bar:function(){returnthis}}foo.bar()//==>foo(foo.bar)()//==>foo/butwhy?(foo.bar?foo.bar:$.noop)()//==>window(foo.bar||0)()//==>window 最佳答案 分组运算符不会破坏引发方法调用的属性引用。thespec中明确提到了这一点:NOT

javascript - 以 Angular 创建一个新对象

我是编程新手,我对内存概念有疑问。我有一个users页面,通过ng-repeat显示数据库中的用户,每个用户都可以选择编辑或删除。我还在那个页面上有一个按钮来添加一个新用户。我的问题是,当我编辑用户时,该用户的信息保留在内存中。所以;当我点击新建时,字段会填充我编辑的最新用户。下面是我的代码,当我点击添加新用户时,如何让它创建一个新对象。varapp=angular.module("dico",[]);app.service('srvUsuarios',function($http){varusuarios=[];varusuario={"id":"","fullname":"","u

javascript - 为什么在 ES6 中不使用绑定(bind)到它的类创建的对象的方法?

我喜欢ES6类,但我不明白为什么我必须在构造函数中绑定(bind)方法:constructor(){this.someMethod=this.someMethod.bind(this)}我几乎需要为任何方法执行此操作。这是一个真正的限制还是我遗漏了什么?这背后的原因是什么?我知道JS中的类只是语法糖,但这可能是其中的一部分。 最佳答案 引用MarkMiller对thelinkedesdiscusspost的回答这里:Severaloftheearlyclassproposalsdidso,astheywerestartingwith

javascript - ES6 解构对象数组

我有这个对象constconfig={js:{files:[{src:'./js/app.js',name:'script.js',dest:'public_html/js/'},{src:'./js/admin.js',name:'script.js',dest:'public_html/js/'}]}};我想得到这个(获得所有来源):sources=['./js/app.js','./js/admin.js']//or,atleastsources=[{'./js/app.js'}]我知道如何用循环来做,但我可以用ES6解构来做吗?类似于:{sources=[{src}]}=con

javascript - 使用动态嵌套属性键对数组中的对象进行排序

我正在尝试对嵌套对象的数组进行排序。它正在使用静态选择的键,但我不知道如何动态获取它。到目前为止,我已经有了这段代码sortBy=(isReverse=false)=>{this.setState(prevState=>({files:prevState.files.sort((a,b)=>{constvalueA=(((a||{})['general']||{})['fileID'])||'';constvalueB=(((b||{})['general']||{})['fileID'])||'';if(isReverse)returnvalueB.localeCompare(val