gpt4 book ai didi

javascript - 什么是原型(prototype)组合或继承?

转载 作者:行者123 更新时间:2023-11-28 13:51:25 24 4
gpt4 key购买 nike

原型(prototype)的目的是全局创建方法和属性吗?那么这意味着所有实例都可以访问它?上述方法和属性不在构造函数内,这是否意味着它们不是每次创建对象时都会创建?

原型(prototype)是 TheClass 中的对象吗?

TheClass.prototype.someProperty = "hello";

那么上面的语句中,是在原型(prototype)对象内部创建属性吗?如果是这样,那么如果类是在原型(prototype)对象内创建的,那么它如何访问该属性?

这些是如何访问该属性

var obj = new TheClass();
alert(obj.someProperty);

不是这个

alert(obj.prototype.someProperty);

另外toString()也在原型(prototype)对象内部您通过调用 toString 所属的对象来调用 toString() ,但是 toString() 属于原型(prototype)对象,对吗?

为什么它是通过调用对象而不是对象内部的原型(prototype)来调用的。我熟悉java,这叫做COMPOSITION

那么为什么会这样呢?我知道它是否是继承,但不是组合,而且我们没有编写委托(delegate) toString() 方法的语句对象的原型(prototype)。

alert(theClass);

不是

alert(prototype);

最佳答案

从特定类继承的类可以访问该类原型(prototype)上的方法。这使得 prototype 成为基于继承的构造。

Is the purpose of prototype to create methods and properties globally?

是的。原型(prototype)允许您提供可以从该类继承的类方法和属性的实例。

So that means all the instance can access it?

是的。

Is prototype an object inside TheClass?

没有。 Prototype 是一组属性,从 TheClass 继承的类也被授予访问权限。如果在特定对象上找不到属性,它将在原型(prototype)链中搜索该属性。

关于javascript - 什么是原型(prototype)组合或继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10592213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com