prototypal-inheritance相关内容
我刚刚进入JavaScript,我正试图围绕原型继承。似乎有多种方法可以达到同样的效果,所以我想看看是否有任何最佳实践或理由以一种方式做事。以下是我所说的: //方法1 函数Rabbit(){ this .name =“Hoppy”; this.hop = function(){ console.log(“我正在跳!”); } } //方法2 函数Rabbit(
..
背景:查询字符串模块适用于示例能够将 key = value& hello = universe 解析为对象 {key:'value',hello:'universe'} 。但是,模块作者已决定返回的对象没有原型。换句话说,这个“混蛋”对象是由 Object.create(null)创建的。 问题:使用 parsed.hasOwnProperty('hello')会很方便,但如果没有默认对象
..
在JavaScript中确定哪些对象复杂,以及弄清楚哪些对象是数组有一些 hacky解决方案。幸运的是,它设法在以下两种情况下工作: Object.prototype.toString.call([]); // [object Array] Object.prototype.toString.call(new Array()); // [object Array] 很
..
在JS中尝试不同的继承技术,并且遇到了一些关于Crockford的Prototypal Inheritance模式的轻微令人不安的事情: function object (o){ 函数F(){} F.prototype = o; 返回新的F(); } var C, P = { foo:'bar', baz:function(){alert(“bang”); } }
..
我观察到通过在Javascript中使用“prototype”属性(并间接设置原型链),可以在JavaScript中实现多级继承。但是有可能通过某种方式在Javascript中实现多重继承吗?任何简单的例子都会很棒。 解决方案 要实现简单的继承,你通常会这样做 MyClass.prototype = new MySuperClass(); 但你也可以复制另一个“类
..
我经常看到这种模式来定义javascript对象 function Person(name){ this.name =名称; } Person.prototype.describe = function(){ return“Person called”+ this.name; }; 在这篇文章它说直接向原型objct添加属性被认为是反模式。 来自”经
..
背景 我一直在使用C预处理器来管理和“编译”包含多个文件和构建的半大型JavaScript项目目标。这样就可以完全访问C预处理程序指令,例如 #include , #define , #ifdef 等。这是一个示例构建脚本,因此您可以测试示例代码: #!/ bin / bash export OPTS = `-dDEBUG_MODE = 1 -Isrc“ for file in`
..
我见过很多像这样的东西,我正在寻找基本的JavaScript继承的正确解决方案: function Food(){} //食物构造函数(类) 函数Bread(){} //面包构造函数(类) var basicFood = new Food(); //食物类将继承自此basicFood实例。 Bread.prototype = basicFood; //面包现在继承自食物。
..
您知道Javascript是基于原型的编程语言。 我读过一些关于Javascript及其原型继承概念的书籍,但是: “如果你不能解释它为六岁了,你自己真的不明白。“。好吧,我试图向一位22岁的朋友解释JavaScript原型概念并完全失败! 你如何向一个对这个主题感兴趣的6岁的人解释它? 我已经看到了Stack Overflow中给出的一些例子,它没有帮助。 解决方案
..
Bounty编辑: 我正在寻找用纯原型OO范例编写的代码(想想自)。不是原型OO和经典OO的混合物。我不希望看到通用的OO包装器,而只是使用原型OO技术和仅原型OO技术。 参考相关问题: Prototypical OO in JavaScript 在上面的问题中,我主要关注 可以像这样编写原型OO吗? 我们是否需要构造函数和初始化逻辑,有哪些替代方案? 新
..
初步问题 昨天我读到了ECMAScript 5 Object.create() 我想用这种方法开始在我的代码中构建原型链设置原型及其构造函数, 我喜欢你可以直接设置可写配置等。 我试过这样的 function printobject(msg,obj){ if(msg){ document.write(“”+ msg +“
”); docu
..
我不太熟悉javascript继承,我试图让一个对象从另一个继承,并定义自己的方法: function Foo(){} Foo.prototype = { getColor:function(){return this.color;}, }; 函数FooB(){} FooB.prototype = new Foo(); FooB.prototype = { / *此处的其
..
我正在查看有关node.js事件模块的这篇文章: http://www.sitepoint.com/nodejs-events-and-eventemitter/ 在其中有这样的代码: Door.prototype .__ proto__ = events.EventEmitter.prototype; 据说将Door对象的原型设置为event.EventEm
..
假设我有以下代码; var A = {a:10}; var B = {b:20}; B.prototype = A; alert(B.a); 我对B.a的定义不明确。 我做错了吗?如何设置对象文字的原型? 我知道如何为Constructor对象做。所以下面的代码是完美的 函数A(){this.a = 10} 函数B(){ this.b =
..
只有3行代码,但我无法完全理解这一点: Object.create = function(o){ function F(){} F.prototype = o; 返回新的F(); }; newObject = Object.create(oldObject); (来自 Prototypal Inheritance ) Object.c
..
我正在努力深入了解原型继承和类创建(我知道,还有其他方法,但出于此目的,我正在尝试掌握原型。)我的问题是:使用以下代码例如,有没有办法在树和 Fruit 中创建私有变量,该变量不会随函数返回,但仍然可以访问原型函数 genus 和批量? var Tree = function(name,size){ this.name = name; this.size = size; };
..
鉴于简单的JS继承,这两个例子之间的基函数的实际区别是什么?换句话说,一个人什么时候应该选择在“this”上而不是在原型上(或者反过来)定义一个函数? 对我来说第二个例子更容易消化,但还有多少呢? 在此定义的函数: // base var _base = function(){ this.baseFunction = function(){ console.log(“H
..
如何在不修改原型的情况下扩展核心JavaScript类型(String,Date等)?例如,假设我想用一些方便的方法创建一个派生的字符串类: function MyString (){} MyString.prototype = new String(); MyString.prototype.reverse = function(){ 返回this.split('')。rever
..
在所有文章中都写道,JavaScript是一种基于原型的语言,这意味着每个对象都有一个原型(或更确切地说,原型链)。 到目前为止,我已经尝试了以下代码片段: var F = function(); F.prototype.member1 = 1; var object1 = new F(); console.log(object1.member1); //打印1
..
我用OOP语言编程已有10多年了,但我现在正在学习JavaScript,这是我第一次遇到基于原型的继承。通过学习优秀的代码,我倾向于学得最快。什么是正确使用原型继承的JavaScript应用程序(或库)的精心编写的示例?您能否(简要地)描述原型继承的使用方式/地点,所以我知道从哪里开始阅读? 解决方案 道格拉斯·克罗克福德有一个关于 JavaScript Prototypal Inheri
..