草庐IT

strict-prototypes

全部标签

javascript - 覆盖继承的原型(prototype)方法并在新方法中调用原始方法

在下面的代码中,如何访问B.prototype.log中的A.prototype.log?functionA(){}A.prototype.log=function(){console.log("A");};functionB(){}B.prototype=Object.create(A.prototype);B.prototype.constructor=B;B.prototype.log=function(){//callA.prototype.loghereconsole.log("B");};varb=newB();b.log();我知道我可以只写A.prototype.log

javascript - 构造函数中的 "use strict"是否扩展到原型(prototype)方法?

我试图弄清楚“usestrict”的定义是否扩展到构造函数的原型(prototype)方法。示例:varMyNamespace=MyNamespace||{};MyNamespace.Page=function(){"usestrict";};MyNamespace.Page.prototype={fetch:function(){//doIneedtouse"usestrict"hereagain?}};根据Mozilla您可以将其用作:functionstrict(){"usestrict";functionnested(){return"AndsoamI!";}return"Hi

javascript - `jshint globalstrict: true` 与 'use strict' 的用途

在阅读JavaScript源代码时,我经常会在顶部看到这两行代码。/*jshintglobalstrict:true*/'usestrict';现在,我很清楚'usestrict';的用途了。有人能告诉我为什么要包含jshintglobalstrict吗? 最佳答案 JSHint(从JSLint派生)是一个流行的“lintchecker”,它运行在JavaScript代码上。它不执行或修改代码,而是对其进行分析并报告它发现的各种不同的潜在错误或不良做法。如果您在JavaScript文件的顶部(在任何JavaScript函数之外)有'

javascript - 等效于 ES6 生成器的 Function.prototype.apply

我正在尝试构建可链接的JavaScriptAPI。(我在启用了迭代器和生成器的最新版本的V8中运行它。)在下面的示例中,setState是可链接的。它还允许您调用它而无需显式创建新的Builder实例。chain()辅助函数处理并自动返回该实例,因此setState不必担心它。(一流的功能为赢!)除了可链接的方法之外,我还需要一些“终止”方法。更重要的是,这些“终结者”是发电机。生成器生成Builder实例的内部状态。问题是我无法找出与生成器的f.apply(that,arguments)等效的方法。我希望能够在运行时调用生成器并设置其this上下文,就像您可以使用Function.p

javascript - 在函数实例中使用原型(prototype)添加值

这个问题在这里已经有了答案:HowdoesJavaScript.prototypework?(26个答案)关闭7年前。我的代码中有一个构造函数。我已经创建了那个构造函数的实例。在新创建的实例中,我想通过使用原型(prototype)方法添加值或功能。但是我在执行此操作时遇到错误。这是我的代码fiddlefunctiona(){this.d=9}a.prototype.one=1;a.prototype.two=2;varj=newa();j.prototype.three=3;console.log(j)

javascript - 扩展 String.prototype 性能表明函数调用快 10 倍

我想用一些实用方法扩展String对象原型(prototype)。它有效,但性能出奇的低。将字符串传递给函数比重写执行相同操作的String.prototype方法快10倍。为了确保这真的发生了,我创建了一个非常简单的count()函数和相应的方法。(我正在试验,并创建了该方法的三个不同版本。)functioncount(str,char){varn=0;for(vari=0;i结果:func:705msproto:10011msproto-reuse:10366msproto-var:9703ms如您所见,差异是巨大的。下面证明了方法调用的性能可以忽略不计,并且函数代码它自己对于方法

javascript - 为什么 CSS3Pie + Prototype 1.6.1 会导致 Internet Explorer 8 崩溃

我试图理解为什么Css3Pie与Prototype1.6.1一起使用会导致InternetExplorer8崩溃。为什么会这样?相关信息CSS3Pie[sourcecode]是一种InternetExplorer行为(htc),它添加了对CSS3属性(如边框半径、渐变等)的支持。崩溃仅发生在IE8中,不会发生在IE7或更早版本中。崩溃只发生在Prototype1.6.1[sourcecode],不是原型(prototype)1.6.0.x崩溃在页面加载时立即发生,我什至无法与页面交互。开发人员知道该问题,但由于他认为这是一个原型(prototype)问题(可能是),他可能并不急于修复它

javascript - 原型(prototype) : registry is undefined

我的注册表是未定义的行:5557...原型(prototype)为1.7。$$('#pageNava').each(function(element){element.observe('click',doSome(this.href));})pageNav是带有LI和A标签的UL列表。 最佳答案 这可能不完全适用,但我有一个非常相似的问题。原来我试图附加事件处理程序的对象是未定义的。//objTblisundefined->'registryisundefined'errorEvent.observe(objTbl.rows[i],

javascript原型(prototype)继承和对象属性

我正在尝试将原型(prototype)继承应用于Javascript中的函数。这一切都非常简单,甚至在Wikipedia'sjavascriptlemma中进行了描述.如果我的属性是简单的javascript类型,它就可以工作:functionPerson(){this.age=0;this.location={x:0,y:0,absolute:false};};functionEmployee(){};Employee.prototype=newPerson();Employee.prototype.celebrate=function(){this.age++;}varpete=n

javascript - 如何迭代对象原型(prototype)的属性

我有一些代码:varobj=function(){};//functionalobjectobj.foo='foo';obj.prototype.bar='bar';for(varpropinobj){console.log(prop);}令我惊讶的是,所有记录的都是foo。我希望for循环也遍历obj原型(prototype)的属性(即bar),因为我没有检查hasOwnProperty。我在这里错过了什么?是否也有一种惯用的方法来遍历原型(prototype)中的所有属性?我在Chrome和IE10中对此进行了测试。提前致谢。 最佳答案