草庐IT

new_location

全部标签

javascript - 令人困惑的 JavaScript 语句 : "var x = new this();"

我以为我理解了JavaScript原型(prototype)对象的概念,以及[[proto]],直到我看到一些关于类继承的帖子。首先,“JavaScriptOOP-聪明的方式”在http://amix.dk/blog/viewEntry/19038查看实现部分:varparent=newthis('no_init');还有JohnResig的精彩博客上的“简单JavaScript继承”。varprototype=newthis();newthis();到底是什么意思?这个声明对我来说毫无意义,因为我的理解是this指向一个对象而不是构造函数。我还尝试在Firebug中测试语句来解决这个

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

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

javascript - location.protocol 是否无效?

我想使用与加载当前运行的JavaScript的页面相同的方案(大概是“http:”或“https:”)构建URL。现代浏览器支持简单地省略方案(例如,src="//example.com/test.js"),但这并不完全跨浏览器兼容。(我读到IE6是唯一不支持它的浏览器,但我仍然需要与该版本兼容。)执行此操作的跨浏览器方法似乎是检查location.protocol。例如,GoogleAnalytics使用:('https:'==document.location.protocol?'https://ssl':'http://www')+...在Google的案例中,他们希望根据请求是

javascript - new 关键字在幕后做了什么?

我很好奇new关键字除了更改this范围所指的内容外,在后台还能做什么。例如,如果我们将使用new关键字使函数在对象上设置属性和方法与仅使函数返回新对象进行比较,那么新对象还有什么额外的作用吗?如果我不想从函数构造函数创建多个对象,这是首选varfoo2=function(){vartemp="test";return{getLol:function(){returntemp;},setLol:function(value){temp=value;}};}();varfoo=newfunction(){vartemp="test";this.getLol=function(){retu

javascript - 如何将 window.location 设置为特定路径(没有主机)?

我正在使用窗口定位方法在设定的时间后将一个网页重定向到另一个网页。网址需要从www.myurl.com/home更改为www.myurl.com/other。问题是我不知道最终URL是什么,所以我不能使用绝对链接,它们只能是路径。这是我目前所拥有的:window.location.pathname="mobility.html" 最佳答案 您只需在您的URL前添加一个/即可使它们相对于域根目录(无需对域名进行硬编码)。像这样:window.location="/mobility.html"

javascript - Typescript 中的 new() 是什么?

在官方文档中遇到了new()here关于泛型。这里是代码上下文:functioncreate(c:{new():T;}):T{returnnewc();}上面的代码被转译成下面的JavaScript代码:functioncreate(c){returnnewc();}new()是JavaScript中的非法语法。在TypeScript中它是什么意思?此外,{new():T;是做什么的?}是什么意思?我知道它一定是一种类型,但如何呢? 最佳答案 new()描述了typescript中的构造函数签名。这意味着它描述了构造函数的形状。以{

javascript - location.hash 和回溯历史

有没有可以调用的函数来防止浏览器在更改哈希值时记录回溯历史条目?我正在编写一个简单的javascript图库,它可以在用户浏览每张图片时更改浏览器url而无需重新加载页面。这是通过将location.hash设置为图像的唯一ID来完成的。window.location.hash=imageID;问题是当用户点击浏览器后退按钮时,他们必须像加载页面一样向后浏览每张图片。如果他们使用图库旋转浏览20张图片,则他们必须点击返回21次才能返回到上一页。如何防止使用javascript记录回溯历史? 最佳答案 window.location.

javascript - window.location.reload 不适用于 Firefox 和 Chrome

我想通过单击按钮更改用户状态,所以我所做的就是检测当前状态并根据需要进行更改。但在这种情况下,后端会更改状态,但要显示页面需要刷新的状态,因为在刷新时它会检查当前状态并显示。所以我使用“window.location.reload”属性在页面上显示最新状态在IE中一切正常。但对于Firefox和Chrome,状态不会改变。我认为“window.location.reload”不起作用,因为当我评论这一行并尝试单击按钮并手动刷新页面时,它会显示更改状态。您能否建议我应该使用什么来使它在Firefox和Chrome中正常工作?当我用谷歌搜索时,我发现如果您在“setTimeout()”中提

javascript - window.location.hash 分配在 IE8 中非常慢

我在为XP的IE8中修改位置哈希时遇到问题。只需调用:self.location.hash="whatever"大约需要800ms~1800ms我不知道什么可以减慢速度。我在其他一些网站上检查了相同的说明,并没有那么慢。有什么线索可以让它这么慢吗?很抱歉,我无法提供在线示例。编辑:这是我在IE控制台中得到的,输入:console.log(newDate().getTime());self.location.hash="sfdsd";console.log(newDate().getTime());输出:JOURNAL:1326468325447JOURNAL:1326468327390

javascript - 即使忘记了 `new`,我什么时候应该自动创建一个对象?

假设我有以下对象构造函数:functionFoo(bar){this.bar=bar;}如果我在没有new关键字的情况下在全局范围内运行函数,那么bar将被设置在调用Foo()的任何范围内在:varfoo=Foo(42);console.log(bar);//42console.log(foo.bar);//ERROR所以我的想法是做这样的事情:functionFoo(bar){if(!(thisinstanceofFoo)){//returnaFooobjectreturnnewFoo(bar);}this.bar=bar;}那样的话,如果我执行newFoo(42)或Foo(42),