草庐IT

Prototype_Console

全部标签

javascript - 为什么 hasOwnProperty 无法识别对象原型(prototype)上的函数?

我知道JavaScript中的hasOwnProperty方法仅用于识别当前类型的属性,但这里的原型(prototype)链中有些东西让我感到困惑。让我们想象一下,我定义了一个名为Bob的类型,并以两种不同的方式为我的Bob类型分配了两个子函数:functionBob(){this.name="Bob";this.sayGoodbye=function(){console.log("goodbye");}}Bob.prototype.sayHello=function(){console.log("hello");}现在除了在sayGoodbye的情况下可以访问闭包范围外,在我看来属于

javascript - 了解原型(prototype)继承

我画了下图来演示对象是如何继承的(函数构造函数标记为蓝色,从这些构造函数创建的对象标记为绿色):下面是创建这种层次结构的代码:functionFigure(){}functionRect(){}Rect.prototype=newFigure();functionSquare(){}Square.prototype=newRect();functionEllipse(){}Ellipse.prototype=newFigure();functionCircle(){}Circle.prototype=newEllipse();现在我想检查newSquare()是否继承自Rect,所以这

javascript - 我如何测试一个 Jest console.log

我正在使用create-react-app并尝试编写一个jest测试来检查console.log的输出。我要测试的功能是:exportconstlog=logMsg=>console.log(logMsg);我的测试是:it('console.logthetext"hello"',()=>{console.log=jest.fn('hello');expect(logMsg).toBe('hello');});这是我的错误FAILsrc/utils/general.test.js●console.logthetexthelloexpect(received).toBe(expected

javascript - 创建具有不同范围的 ES6/ESNext 原型(prototype)函数(不是内联函数)

好吧,假设我们有这个:classCar{constructor(name){this.kind='Car';this.name=name;}printName(){console.log('this.name');}}我想做的是定义printName,像这样:classCar{constructor(name){this.kind='Car';this.name=name;}//wewanttodefineprintNameusingadifferentscope//thissyntaxisclose,butis*not*quitecorrectprintName:makePrintN

javascript - 什么时候使用 "prototype"这个词来为 javascript 中的对象添加新属性?

我不明白在JavaScript中什么时候使用“原型(prototype)”这个词,什么时候使用简单的“点”符号而不使用“原型(prototype)”这个词。有人可以查看这些代码块并帮助我了解您何时想要使用一个代码块吗?与“原型(prototype)”:functionemployee(name,jobtitle){this.name=name;this.jobtitle=jobtitle;}varfred=newemployee("FredFlintstone","Caveman");employee.prototype.salary=null;fred.salary=20000;co

javascript - Backbone.js model.get() 返回 'undefined' 即使我可以在 console.log 中看到属性

我有一个模型实例,我在其上设置了另一个模型实例,即model.set('rsvp',newApp.Rsvp)。当我遍历集合以在View中生成它们的列表时,我在调用model.rsvp.get('attending')时得到undefined。然而,当我执行console.log(model.rsvp)时,我得到了这个:Rsvp_changing:false_escapedAttributes:Object_moreChanges:false_previousAttributes:Object_setting:falseattributes:Objectattending:truecre

javascript:带有回调和 'this' 的原型(prototype)

我创建了一个基于原型(prototype)的类Person,它打开一个WebSocket连接并将回调函数定义为原型(prototype)方法。因为在回调中this将引用WebSocket对象,我使用另一个变量来保存Person的this。但是,当我处理多个实例时,变量会被覆盖。这是一个显示问题的小片段:functionPerson(name){self=thisself.name=name}Person.prototype={getName:function(){returnself.name},openConnection:function(host,port){self.point

javascript - 为什么 Object.prototype === 不是 myNewObj.prototype?

所以如果你看看这个fiddlehttp://jsfiddle.net/r0k3t/z8f2N/1/你可以看到varme={fName:"ken",lName:"n"};console.log(Object.prototype===Object.getPrototypeOf(me));返回真值。为什么不console.log(Object.prototype===me.prototype);鉴于我将“我”对象创建为对象字面量,因此它的原型(prototype)应该是Object.prototype并且第一行似乎证实了这一点。 最佳答案

javascript - JavaScript 的 Object.prototype 行为是什么?

我遇到了一段奇怪的代码,我根本看不懂,这里是:varobj=function(){};obj.prototype.x=5;varinstance1=newobj();obj.prototype={y:6};varinstance2=newobj();console.log(instance1.x,instance1.y,instance2.x,instance2.y);//5,undefined,undefined,6现在,问题是:为什么此日志记录5,undefined,undefined,6而不是undefined,6,undefined,6?为什么替换原型(prototype)并没

javascript - 范围链查找与原型(prototype)查找 - 哪个是什么时候

如果一个变量在需要时在函数中不可用,那么它会在作用域链(它是一个闭包)中查找,但其他时候它会在原型(prototype)链中查找。我正在努力思考什么时候发生。我想知道是否有人可以为我拨开迷雾,或者让我引用一些专门讨论这个主题的文献。例如,我这样说是否正确:-对象和因此绑定(bind)到上下文(this)的公共(public)变量总是在原型(prototype)链中查找?-始终在作用域链中查找私有(private)变量(即执行上下文中的函数链)?-是否存在程序同时查看/查看其中一个的情况?我测试了三种不同的场景(作用域链查找、原型(prototype)查找和无查找),但不幸的是,它对深入