草庐IT

strict-prototypes

全部标签

javascript - 未调用 onreadystatechange 的 XMLHttpRequest 原型(prototype)

我正在尝试检测我的UIWebView中任何ajax调用何时完成。我修改了这个答案中的代码:JavaScriptdetectanAJAXevent尽我所能。这是我的尝试:vars_ajaxListener=newObject();s_ajaxListener.tempOnReadyStateChange=XMLHttpRequest.prototype.onreadystatechange;s_ajaxListener.callback=function(){window.location='ajaxHandler://'+this.url;};XMLHttpRequest.protot

javascript - 无法在 ES6 类定义中定义原型(prototype)属性

我在尝试ES6语法,发现我不能在类定义中定义原型(prototype)属性或实例属性,为什么禁止它?我之前使用的是MyClass.prototype.prop=1,通过babel编译器尝试ES7,如下所示,仍然无法定义原型(prototype)属性。classMyClass{prop=1;staticsProp=1;}我不认为定义实例属性有任何危险,在我自己的浏览器游戏中有2种情况需要原型(prototype)属性:子类实例需要从基类继承相同的属性值:varBuilding=function(){...}Building.prototype.sight=350;TerranBuildi

javascript - 通过原型(prototype)将计算的可观察对象添加到构造函数

我正在使用Knockout.js2.0,我正在尝试通过添加计算可观察对象来扩展我创建的构造函数的原型(prototype),但它会抛出“self.IsSubDomain不是函数”。我该如何解决这个错误?有没有另一种方法可以扩展构造函数来解决这个问题?http://jsfiddle.net/StrandedPirate/J44S4/3/注意:我知道我可以在构造函数的闭包内定义计算的可观察对象,但我正在为knockoutView模型构建一个自动代码生成器,我需要能够通过原型(prototype)属性扩展我的对象。 最佳答案 我也是ans

javascript - ES5 "strict"和 arguments.callee

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whywasthearguments.callee.callerpropertydeprecatedinJavaScript?在ES5严格模式(即“usestrict”)中,引用当前函数的arguments.callee变量不再可用。对于递归函数,使用函数自己的名称显然是明智的。然而,有时我可能想使用arguments.callee的属性(即.length、.prototype)而不必使用名称当前功能。谁能解释通过删除它(据称)解决了哪些明显的问题?

javascript - 未捕获的类型错误 : Object prototype may only be an Object or null on ember-1. 0.0-pre.2

我从Ember开始,紧跟着这个tutorial.我从Ember.js网站下载了最后一个源代码,我有以下代码:HTMLTestapp.jsApp=Em.Application.create();App.ApplicationView=Em.View.extend({templateName:'application'});App.ApplicationController=Em.Controller.extend();App.Router=Em.Router.extend({root:Em.Route.extend({index:Em.Route.extend({route:'/'})}

javascript - "Bad Line Breaking"是否已被 "use strict"淘汰?

请假设“使用严格”;并假设JSLint已打开并且错误不能被忽略。我发现运算符和','启动的列表更具可读性,例如:vari=0,j=1,someLongVariablename1,someLongVariablename2,someLongVariablename3,someLongVariablename4;if(('dcr'===cmd&&(action)&&('get'===actionHttp||'post'===actionHttp)&&whatever){...}因此我的问题是:“BadLineBreaking”是否已因“usestrict”而过时?已编辑:“使用严格”;不会

javascript - 关于原型(prototype)对象及其在 Javascript 继承中的作用

我才刚刚开始弄乱Javascript继承,无法解决这个问题:如果我运行这段代码:functionFoo(y){this.y=y;}Foo.prototype.x=1;varBar1=newFoo(2);varBar2=newFoo(3);我希望内存中有以下“结构”:我在图形中搞砸了,Bar2显然其属性“y”的值为“3”很高兴,我可以通过运行这段代码来确认:console.log("Prototype-x:",Foo.prototype.x,"y:",Foo.prototype.y);console.log("Bar1-x:",Bar1.x,"y:",Bar1.y);console.lo

javascript - Object.create 改变了 Chrome 中原型(prototype)对象的控制台输出?

今天我在玩游戏时注意到我在Chrome控制台中的一些对象显示为Object而不是构造函数名称。这很奇怪,所以我将其归结为以下代码:functionBaz(){this.baz=true;}varb=newBaz();varc=Object.create(b);console.log(b);//whyisboutputtingwithObjectnotBaz?在上面的代码b中,不是通过Object.create创建的,但在记录时它显示为Object。我没有打错字,错误地询问了c。当我什至还没有接触那个对象时,b的日志已经被改变了。创建另一个实例c,不应更改b。这一定是Chrome的错误吧

javascript - 为什么 Array.prototype.fill() 与 `for` 循环相比有如此大的性能差异?

在对Array.prototype.fill()方法进行一些测试(macOS上的Chrome)时,它显然比简单地创建您自己的慢了将近两倍(如果不是更慢的话)for循环并填充您的数组。显然在做类似的事情:for(vari=0;i对比Array.fill(0);Array.fill()方法将花费约210-250毫秒来填充大小为10000000的数组,而for循环将花费约70-90毫秒。似乎Array.fill()方法可以重写为简单地使用直接循环,因为您始终知道初始索引和目标索引。letarrayTest=newArray(10000000),startTime,endTime;startT

javascript - 使用@babel 转译 Array.prototype.flat?

我使用Array.prototype.flat无意中在我的React应用程序中引入了向后兼容性问题。我很惊讶这没有通过转译得到解决——我认为这会产生es2015兼容代码。我怎样才能让Babel7转译这个?(如果我对Babel6中的源代码的阅读是正确的,那么仍然有一个插件,但是自从它开始推广到浏览器支持已经被删除?)工具:@babel/core@7.0.0webpack@4.18.0我的顶级配置文件如下所示:webpack.config.jsvarpath=require('path')module.exports={entry:"./src/index.js",output:{path