Tag: JavaScript

获取类的函数(方法)

我必须dynamic获取ES6类的属性和function。 这甚至有可能吗? 使用for … in循环,我只能循环访问类实例的属性: class Foo { constructor() { this.bar = "hi"; } someFunc() { console.log(this.bar); } } var foo = new Foo(); for (var idx in foo) { console.log(idx); } 输出: bar

Backbone.js空数组属性

我遇到了Backbone.js模型的奇怪问题,其中数组成员显示为空白。 它看起来像这样: var Session = Backbone.Model.extend({ defaults: { // … widgets: [] }, addWidget: function (widget) { var widgets = this.get("widgets"); widgets.push(widget); this.trigger("change:widgets", this, widgets); }, // … // I have a method on the model to grabbing a member of the array getWidget: function (id) { console.log(this.attributes); console.log(this.attributes.widgets); // … } }); 然后我通过addWidget添加一个小部件。 当试图getWidget我得到的结果(在Chrome中)是这样的: […]

在Javascript中帮助parsingISO 8601date

需要关于将具有以下结构的ISO 8601date转换为javascript的帮助/提示。 CCYY-MM-DDThh:mm:ssTZD 我想要这样的date: January 28, 2011 – 7:30PM EST 我想保持这个解决scheme尽可能干净和最小化。 如果你需要其他的东西,请让我知道! 谢谢!

为什么JavaScript处理string和数字之间的加号和减号运算符有区别?

我不明白为什么JavaScript这样工作。 console.log("1" + 1); console.log("1" – 1); 第一行打印11,第二个打印0.为什么JavaScript处理第一个作为一个string,第二个作为一个数字?

使用对象分组数组项目

我的数组是这样的: myArray = [ {group: "one", color: "red"} {group: "two", color: "blue"} {group: "one", color: "green"} {group: "one", color: "black"} ] 我想将其转换为: myArray = [ {group: "one", color: ["red", "green", "black"]} {group: "two", color: ["blue"]} ] 所以,基本上是一个一个的group 。 我尝试着: for (i in myArray){ var group = myArray[i].group; //myArray.push(group, {???}) } 我只是不知道如何处理类似团体价值的分组。

(function(){…}())之间有区别吗? 和(function(){…})();?

可能重复: 自动执行匿名JavaScript函数的括号的位置? 有时我看到: (function() { … }()); 有时我会看到: (function() { … })(); 我看到两种forms有和没有论据。 他们都 执行匿名函数。 这两种forms有什么区别? 是否有任何令人信服的理由使用其中一种forms?

如何停止JavaScript中的window.setInterval?

我有一个JavaScript函数,每2000毫秒被调用。 我想停止这个,所以我可以让用户在页面上做其他事情,而不再被调用。 这可能吗? 这是每2000ms调用一次的函数: window.setInterval(function getScreen (sid) { if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("refresh").innerHTML=xmlhttp.responseText; } } xmlhttp.open("POST","getScreen.php?sid="+<?php echo $sid; ?>,true); xmlhttp.send(); },2000);

Javascriptclosures和'这个'

我创build的对象有一个问题,如下所示: var myObject = { AddChildRowEvents: function(row, p2) { if(document.attachEvent) { row.attachEvent('onclick', function(){this.DoSomething();}); } else { row.addEventListener('click', function(){this.DoSomething();}, false); } }, DoSomething: function() { this.SomethingElse(); //<– Error here, object 'this' does not support this method. } } 问题是,当我在“DoSomething”函数内部时,“this”没有引用“myObject”,我做错了什么?

什么是我的脚本srcurl?

有一种简单可靠的方法来确定当前正在执行的JavaScript文件(在网页内)的URL吗? 我唯一的想法就是扫描所有脚本src属性的DOM,以查找当前文件如何被引用,然后通过将其应用于document.location来找出绝对URL。 任何人有其他的想法,有没有我完全忽略了一些超级简单的方法? 更新:通过DOM访问的脚本元素已经有一个src属性,其中包含完整的URL。 我不知道如何无处不在/标准,但也可以使用getAttribute("src") ,它将返回[X] HTML中的任何原始属性值。

在AngularJS服务中caching承诺对象

我想要使​​用Promises在AngularJS中实现一个静态资源的dynamic加载。 问题:我有几个组件可能(或不是,取决于哪些显示,因此dynamic)需要从服务器获取静态资源。 一旦加载,它可以被caching整个应用程序的生活。 我已经实现了这个机制,但是我对Angular和Promises是新的,我想确定这是否是一个正确的解决scheme。 var data = null; var deferredLoadData = null; function loadDataPromise() { if (deferredLoadData !== null) return deferredLoadData.promise; deferredLoadData = $q.defer(); $http.get("data.json").then(function (res) { data = res.data; return deferredLoadData.resolve(); }, function (res) { return deferredLoadData.reject(); }); return deferredLoadData.promise; } 所以,只有一个请求被创build,接下来所有对loadDataPromise()的调用都会返回第一个作出的承诺。 好像在进行中的要求或者前一个已经完成的要求。 但是cachingPromise是一个好的解决scheme吗?