为什么只有javascript需要原型?

为什么只有javascript需要原型?,javascript,Javascript,阅读了一些文章,其中提到Javascript使用prototype只保留实例方法或属性的一个副本 我很困惑;为什么C++、C或java语言不需要原型?如果有数千个实例,那么这些语言会将方法复制数千次吗?否,其他语言有类似的机制来避免类实例上的方法复制。使用JavaScript,这比其他语言更容易公开/手动。在上述语言中,类可以工作,而不是JavaScript中的原型。请注意,这些语言是编译的,这意味着在执行之前,编译器需要检查整个程序并收集所有元数据。指向成员函数的指针存储在内存中的特殊表中,对

阅读了一些文章,其中提到Javascript使用prototype只保留实例方法或属性的一个副本


我很困惑;为什么C++、C或java语言不需要原型?如果有数千个实例,那么这些语言会将方法复制数千次吗?

否,其他语言有类似的机制来避免类实例上的方法复制。使用JavaScript,这比其他语言更容易公开/手动。

在上述语言中,类可以工作,而不是JavaScript中的原型。请注意,这些语言是编译的,这意味着在执行之前,编译器需要检查整个程序并收集所有元数据。指向成员函数的指针存储在内存中的特殊表中,对象所拥有的只是对该表的引用。此外,它们是所谓的强类型语言。这意味着一旦定义了类的成员,就不能在运行时更改它

Javascript绝对不是这样。它更接近口译员。它只需要预先编译一个函数,而不是整个程序。除此之外,javascript的动态特性还要求对对象的类原型具有显式访问。您可以将javascript中的原型视为C中的反射