原型的目的是全局创建方法和属性吗? 这意味着所有实例都可以访问它? 所述方法和属性不在构造函数中,这是否意味着每次创建对象时都不会创建它们?
原型是TheClass中的一个对象吗?
TheClass.prototype.someProperty = "hello";
所以在上面的语句中,是在原型对象中创建属性吗? 如果是这样,那么如果在原型对象中创建属性,那么类如何访问该属性?
这些是如何访问该属性
var obj = new TheClass();
alert(obj.someProperty);
不是
alert(obj.prototype.someProperty);
toString()也在原型对象中 你通过调用toString所属的对象来调用 toString(),但 toString()属于原型对象吗?
如何通过调用对象而不是对象内的原型来调用它。 我熟悉java,这叫做 COMPOSITION 。
为什么这个工作呢?我理解它的 INHERITANCE 但不是 COMPOSITION 而且我们没有写一个声明委托 toString()方法原型到对象。
alert(theClass);
不
alert(prototype);
答案 0 :(得分:2)
从特定类继承的类可以访问该类原型上的方法。这使得prototype
成为一个基于继承的构造。
原型的目的是全局创建方法和属性吗?
是。 Prototype允许您提供可以从该类继承的类方法和属性的实例。
那么这意味着所有实例都可以访问它吗?
是的。
原型是TheClass中的对象吗?
没有。 Prototype是一组属性,继承自TheClass的类也被授予访问权限。如果在特定对象上找不到属性,它将在原型链中搜索该属性。
答案 1 :(得分:2)
答案 2 :(得分:1)
原型的目的是全局创建方法和属性吗?
是的,您将属性和方法添加到原型中,以便该函数的所有实例都可以访问相同的方法和属性。对函数原型中的方法/属性的任何更改都会影响该函数的所有实例
那么这意味着所有实例都可以访问它吗?
是的
所述方法和属性不在构造函数内部,是 这意味着每次创建对象时都不会创建它们吗?
是的,它们不会在每次初始化时重新创建 - 这是主要目的之一。