草庐IT

object-property

全部标签

javascript - 为什么使用 {} 而不是 new Object() 并使用 [] 而不是 new Array() 和 true/false 而不是 new Boolean()?

许多人说您应该避免使用newObject、newArray(),而是使用{}。[]和真/假。使用字面量构造来获取对象或数组的新实例而不是使用new有什么好处?我知道Crockford不喜欢新的,但这是主要论点吗? 最佳答案 与使用各自的构造函数相比,对象和数组文字的优点是:更短、更易读更安全:当Array或Object构造函数被重写时,文字仍然有效可能会更快,但它不太可能成为主要考虑因素(任何瓶颈几乎肯定会起源于代码中的其他地方)在数组的情况下,文字还有一个额外的优势:不可能单独使用Array构造函数创建具有单个成员的数组。例如,[

javascript - 未捕获的类型错误 : Cannot read property 'length' of undefined

当我尝试从AJAX调用中获取数据并在单击提交按钮时将其插入另一个函数时,如何避免出现以下错误?ajax函数中的console.log调用显示数据已被抓取,我希望然后存储在json_data中。当时的目的是使用此数据来更改通过HTML表单提交的字符串。然后在“点击”函数的行返回错误:console.log(json_data.length);TestForm#results_box{border:red5pxsolid;}#place{border:#cccccc1pxsolid;}$(document).ready(function(){varjson_source="https://

javascript - (_.merge in ES6/ES7)Object.assign without overriding undefined values

有_.mergelodash中的功能。我想在ES6或ES7中实现同样的事情。有这个片段:Object.assign({},{key:2},{key:undefined})我想接收{key:2}。目前我收到{key:undefined}这不是深度合并。这可能吗?如果是,那么如何实现? 最佳答案 您无法通过直接使用Object.assign来实现这一点,因为每个下一个对象都会为上一个合并重写相同的键。唯一的方法是使用一些手工制作的函数来过滤传入的对象。functionfilterObject(obj){constret={};Objec

javascript - jQuery Ajax 调用返回 '[object XMLDocument]'

我有一个HTML页面,我想使用Ajax填充它。我已经从其他页面复制了代码(它们都是用PHP编写的,我不确定这是否重要),它正在返回[objectXMLDocument]。在其他页面(PHP页面)中,我得到了我在例程中打印出的任何内容。这是我所拥有的:index.html-...$(document).ready(function(){getSplashHelpVideos();});在javascript文件中-functiongetSplashHelpVideos(){$.ajax({url:"include/get_help_videos.php",type:"POST",succ

javascript - 错误 TS7017 : Index signature of object type implicitly has an 'any' type in form validation angular 2

我在给出的Angular2中进行响应式(Reactive)验证时遇到编译错误errorTS7017:Indexsignatureofobjecttypeimplicitlyhasan'any'type为了this.comErrors[field]='';constmessages=this.validationMessages[field];this.comErrors[field]+=messages[key]+'';它正在按应有的方式运行,但是当我尝试运行npmrunbuild.prod时,出现错误并且无法构建我的项目这是我的代码:onValueChanged(data?:any)

javascript - IE 11 浏览器错误 - 异常 : Object doesn't support property or method 'matches' , 其他浏览器工作正常

就我而言,该网页在firefox和chrome浏览器中运行良好,但在IEv.11中它显示错误为errorcomesinIE11DEVELOPERTOOLS.该错误显示在IE11的开发人员工具中。该错误不允许打开特定链接,单击它会显示以下错误。polyfills.ts-*BROWSERPOLYFILLS*//**IE9,IE10andIE11requiresallofthefollowingpolyfills.**/import'core-js/es6/symbol';import'core-js/es6/object';import'core-js/es6/function';impo

javascript - 错误 :InvalidValueError: setCenter: not a LatLng or LatLngLiteral: in property lat: not a number

functioninitAutocomplete(){varlat=document.getElementById('lat').value;varlng=document.getElementById('lng').value;console.log(lat);console.log(lng);varmap=newgoogle.maps.Map(document.getElementById('map'),{center:{lat:lat,lng:lng},zoom:13,mapTypeId:'roadmap'});}它给了我以下错误:error:InvalidValueError:

javascript - 自定义过滤器在 AngularJS 中给出 "Cannot read property ' 切片' of undefined"

我的自定义startFrom过滤器给我一个错误。app.filter('startFrom',function(){returnfunction(input,start){start=+start;//parsetointreturninput.slice(start);}});app.controller("PostCtrl",function($scope,$http){$scope.currentPage=0;$scope.pageSize=10;$scope.hidePagination=true;$scope.search=function(){$http.get('some

JavaScript 继承 Object.create()?

如何使用Object.create()进行继承?我尝试了这些,但都没有用:varB=function(){};varA=function(){};A=Object.create(B);A.prototype.C=function(){};和varB=function(){};varA=function(){};A.prototype.C=function(){};A=Object.create(B);和varB=function(){};A=Object.create(B);varA=function(){};A.prototype.C=function(){};没有任何效果。我应该如

javascript - 未捕获的类型错误 : Cannot read property 'getElementsByTagName' of null

我正在尝试使用.getElementsByTagName()选择元素。vartags=document.body.getElementsByTagName("*");当前尝试使用从现有答案中吸取的教训https://stackoverflow.com/questions/7410949/javascript-document-getelementsbyclassname-compatibility-with-ie/7410966#7410966但是我的尝试失败了,出现了这个错误:UncaughtTypeError:Cannotreadproperty'getElementsByTagN