gpt4 book ai didi

javascript - JavaScript 原型(prototype)继承的缺点是什么?

转载 作者:行者123 更新时间:2023-12-03 03:23:24 24 4
gpt4 key购买 nike

我最近观看了Douglas Crockford's JavaScript presentations ,他对 JavaScript 原型(prototype)继承赞不绝口,仿佛这是自切片白面包以来最好的事情。考虑到 Crockford 的声誉,很可能是这样。

有人可以告诉我 JavaScript 原型(prototype)继承的缺点是什么吗? (例如,与 C# 或 Java 中的类继承相比)

最佳答案

根据我的经验,一个显着的缺点是,您无法通过将变量封装在闭包中来模仿 Java 的“私有(private)”成员变量,但仍然可以让随后添加到原型(prototype)中的方法访问它。

即:

function MyObject() {
var foo = 1;
this.bar = 2;
}

MyObject.prototype.getFoo = function() {
// can't access "foo" here!
}

MyObject.prototype.getBar = function() {
return this.bar; // OK!
}

这让那些被教导将成员变量设为私有(private)的面向对象程序员感到困惑。

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

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