草庐IT

原型和原型链

全部标签

Javascript 原型(prototype)语法

这是有效的Javascript语法吗?它有什么作用?Parser.prototype={//...getcurrentState(){returnthis.state[this.state.length-1];},//...}参见https://github.com/LearnBoost/stylus/blob/master/lib/parser.js.谢谢! 最佳答案 它定义了一个getter:Bindsanobjectpropertytoafunctionthatwillbecalledwhenthatpropertyisloo

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 - 在函数实例中使用原型(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 - 原型(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中对此进行了测试。提前致谢。 最佳答案

javascript - 实现原型(prototype)方法

如果我在String上实现了一个方法x,例如:String.prototype.x=function(a){...}然后新版本的javascript实际上实现了x方法,但在另一种方式上,要么返回与我的实现不同的东西,要么返回比我的实现更多/更少参数的函数。这会破坏我的实现并覆盖它吗? 最佳答案 您将覆盖默认实现。任何使用它的代码都将使用您的代码。有人提议scopedextensionmethods它被拒绝了,因为在JS引擎中实现它的计算成本太高。有人讨论了解决该问题的新提案(协议(protocol))。ES6符号也将为您提供一种解决

javascript - 原型(prototype)上的属性会覆盖实际对象的属性吗?

我有一个Person构造函数,方法是sayHellovarPerson=function(firstName,lastName){this.lastName=lastName;this.sayHello=function(){return"Hithere"+firstName;}};然后我在Person的原型(prototype)上定义了一个不同版本的sayHello方法:Object.defineProperties(Person.prototype,{sayHello:{value:function(){return'Hithere';},enumerable:true}});现在

Javascript 不调用原型(prototype)方法

我尝试覆盖一个方法和脚本是:functionwrapper(target){target.doABC=function(){alert('inwrapper');};returntarget;}functionModel(){wrapper(this);}Model.prototype.doABC=function(){alert('inModel');};vara=newModel();a.doABC();结果是“包装”。不知道为什么? 最佳答案 任何JavaScript对象都有自己的和继承的属性。Own是直接在实例上定义的,in