understanding Prototype in javascript
Possible Duplicate:
How does JavaScript .prototype work?
来自Java背景,我正在尝试理解JavaScript。
请告诉我这些是否正确。
我使用node.js而不是browser来学习js。我试过了,
1 2 3 4 5 6 7 8 9 10 11 12 | var human = Object.create(null); // same as var human; console.log(Object.getPrototypeOf(human)); //null var man = Object.create(human); console.log(Object.getPrototypeOf(man)); //{} //expected 'human' var person = Object.create(Object.prototype); // same as var person = {} console.log(Object.getPrototypeOf(person)); //{} //expected 'object' |
首先,imo,不要从node开始。如果您还不知道javascript,节点会将您拖到一个流媒体池中。第二,当我开始使用基于函数的代码时,然后是OO,然后才转到原型。但如果你真的想知道,这个问题已经在这里得到了解答。如果您还有什么问题,请随时问我!
你的例子:
1 | var human = Object.create(null); // same as var human; |
不,它创建了一个不从任何东西继承的空对象。
1 2 3 4 | var man = Object.create(human); console.log(Object.getPrototypeOf(man)); //{} //expected 'human' |
1 2 3 4 | var person = Object.create(Object.prototype); // same as var person = {} console.log(Object.getPrototypeOf(person)); //{} //expected 'object' |
这确实与
首先,您需要先阅读有关
其次,以以下方式调用对象:
1 | var human = {}, man = {}, person = {}; |
第三,这不是Java。在Java类中,对类的理解非常重要。原型在JavaScript中是完全可选的。原型提供的唯一性能优势是,当您的代码在不同的范围内通过引用大量重用函数时。如果这种类型的编码不适用于您,那么您可能不需要使用原型。
原型继承自父对象或某些父对象。JavaScript解析器将首先查找本地分配,如果不存在本地分配,则将检查当前对象的原型是否存在命名引用。简而言之,在编写JavaScript的早期阶段,您需要知道的就是这些。