草庐IT

javascript - 关于 JavaScript 中的继承的问题

你能解释一下下面提到的两个代码之间的区别吗?functionPerson(){}Person.prototype.dance=function(){};functionNinja(){}Ninja.prototype=Person.prototype;和functionPerson(){}Person.prototype.dance=function(){};functionNinja(){}Ninja.prototype=newPerson();我对这些行有点困惑:Ninja.prototype=Person.prototype;和Ninja.prototype=newPerson(

javascript - 在 Javascript 中扩展原型(prototype) - 好方法?

我想验证在扩展原型(prototype)时我使用的方法是否正确-假设“扩展”是正确的词。这个主题得到了很多克隆。我仍在努力正确理解这个主题...目的是:-编写干净和良好的代码。-避免使用框架,如果可能的话,使用纯Javascript。-获得有关不扭曲JS以获得启用类的行为的干净框架的建议。这是我的沙箱的父级原型(prototype):functionParent(){}Parent.prototype={"init":function(){this.name="anon";},"initWithParameters":function(parameters){this.name=par

javascript - 有人可以解释javascript原型(prototype)继承吗

我想知道是否有人可以解释一下function.prototype面向对象javascript中的事物(事物!!??)。我有服务器端编程背景,可能我没有掌握原型(prototype)的全部概念,给定以下代码片段:varanimate=function(){};animate.angular=function(){/*doessomethinghere*/};animate.circular=function(){/*doessomethinghere*/};和varanimate=function(){};animate.prototype.angular=function(){/*do

javascript - 带有 Object.create 和命名构造函数的原型(prototype) OO

我是从Python和Smalltalk的背景转到Javascript的,我很欣赏这门语言中Self和Lisp的传承。使用ECMAScript5,我想在没有new运算符的情况下尝试原型(prototype)OO。约束:创建类的可选new运算符instanceof的原型(prototype)链必须是正确的用于WebInspector调试支持的命名构造函数alloc().init()创建序列,类似于Objective-C和Python这是我为满足标准而进行的尝试:functionsubclass(Class,Base){"usestrict";functioncreate(self,args

javascript - 这是在 Javascript/node.js 中执行私有(private)函数的正确方法吗?

我在node.js中写的一个类如下:module.exports=exports=function(){returnnewClassA()};functionClassA(){this.myvariable=0;}我有一个我想私有(private)的函数。据我了解,如果该函数是在构造函数之外声明的,它本质上将是一个静态函数,无法引用this.myvariable。处理这个问题的正确方法是像这样在构造函数中声明函数://withinconstructorthis.myFunction=functionmyFunction(){console.log(this.myvariable)}或者

使用 "this = "的 Javascript 函数给出 "Invalid left-hand side in assignment"

我试图让一个JavaScript对象使用另一个对象的构造函数的“this”赋值,并假定所有对象的原型(prototype)函数。这是我试图完成的示例:/*Thebase-containsassignmentsto'this',andprototypefunctions*/functionObjX(a,b){this.$a=a;this.$b=b;}ObjX.prototype.getB(){returnthis.$b;}functionObjY(a,b,c){//here'swhatI'mthinkingshouldwork:this=ObjX(a,b*12);/*andby'work

javascript - 在 Javascript 中 OOP 可能吗?

我最近发现Javascript函数可以有类,所以我想知道是否也可以通过javascript实现OOP。是吗?如果是,能否请您指出一些教程或网站,我可以从哪里开始? 最佳答案 OOP绝对是可能的。虽然Javascript没有像大多数OO语言那样的“类”,但它所拥有的被称为“原型(prototype)”。基本上,对象是根据其他对象而不是类来定义的。(对于那些不能全神贯注于原型(prototype)继承的人来说,对象也可以在某种程度上模拟类。)有人可能会争辩说JS的OO能力超过了大多数语言,考虑到对象比在类语言中扮演着更重要的Angula

javascript - 创建 javascript 类时使用什么模式?

在Javascript中创建类(如在OOP中)的最佳方法是什么?现在我正在使用以下模式。可以吗?varmyclass=(function(){var_name;varbaseObject={a:10,c:function(){return_name+"world"+privateFunc();}};functionprivateFunc(){return_name+"-ba";};functionmyclass(name){_name=name;this.x=9;};myclass.prototype=baseObject;returnmyclass;})();

Javascript:使用非连续键迭代数组

我需要遍历一个键不连续的数组:varmessages=newArray();messages[0]="Thisisthefirstmessage";messages[3]="Thisisanothermessage";显然,使用for循环的索引是行不通的,因为它取决于键的顺序:for(vari=0;i处理这个问题的规范方法是什么,见thefor-eachsyntaxisnotintendedforiteratingovervaluesinanarrayinjavascript?谢谢。 最佳答案 惯用的方法是使用对象,而不是数组。请务

javascript - 如何在 JavaScript/jQuery 中实现重载?

我正在尝试调用具有相同签名的函数。例子:有两个同名函数:varobj1,obj2,obj3,obj4,obj5;functionOpenBox(obj1,obj2){//code}functionOpenBox(obj1,obj2,obj3,obj4,obj5){//code}当我在链接的点击事件上调用函数时OpenBox当我点击上面的链接时,它正在调用函数OpenBox(obj1,obj2,obj3,obj4,obj5){}应该调用函数OpenBox(obj1,obj2){}代替。函数出了什么问题? 最佳答案 mattn的想法是正