如何在javascript中进行封装

如何在javascript中进行封装,javascript,jquery,Javascript,Jquery,你能告诉我如何用javascript进行封装吗?我有一个类名Car。我想用B类扩展这个类。其次,我想重写和重载java脚本中的方法 这是我的小提琴 你能解释一下这两行吗 ferari.prototype=新车() 这条线显示法拉利是通过汽车延伸的 Ferrari.prototype.constructor = Ferrari; 这一行的用途是什么?JS在设计上没有提供一种内置的方式来管理对象成员的可见性。但它的灵活性足以让我们进行封装 我为你找到的有效的文章是 这种方法在法拉利的原型上增加

你能告诉我如何用javascript进行封装吗?我有一个类名Car。我想用B类扩展这个类。其次,我想重写和重载java脚本中的方法

这是我的小提琴


你能解释一下这两行吗

ferari.prototype=新车() 这条线显示法拉利是通过汽车延伸的

 Ferrari.prototype.constructor = Ferrari;

这一行的用途是什么?

JS在设计上没有提供一种内置的方式来管理对象成员的可见性。但它的灵活性足以让我们进行封装

我为你找到的有效的文章是

这种方法在法拉利的原型上增加了汽车性能。无论汽车返回什么(),都将添加到现有法拉利原型中

Ferrari.prototype.constructor = Ferrari
Prototype有一个构造函数属性,该属性被此调用覆盖。Prototype=new Car()
。这是再次手动重置它

我已经编辑了你的小提琴

在javascript中使用闭包可以隐藏对象或函数中的元素

function foo(args){
//this is a private variable.
 var _name = ""

 return{
  getname:function(){
   return _name
   }
  }

 }

 bar = new foo()

 // name can only be accessed from inside the foo function.

每当在函数中使用var关键字创建变量时,它只能在该函数的范围内访问。实际上,我是它的私人。

我已经找到了这个链接,实际上我是新手,所以我需要一步一步地走。你能换一下我的小提琴吗。。你能解释这两条线吗法拉利原型=新车();这条线显示法拉利是通过汽车延伸的?Ferrari.prototype.constructor=法拉利;这行代码的用途是什么?这是一个普通的变量,看起来像是在玩具示例中工作的,它实际上是一个反模式。@Esailija:在javaScript中模拟私有变量的其他方法是什么?如果你想模拟私有字段,然后,您应该意识到,任何其他语言的私有字段都可以通过反射和重要原因访问。您使得以任何方式都无法访问它们,即使对于其他内部类也是如此。您也没有使用对象的字段,而是使用普通变量。您可以使用下划线前缀进行更好的模拟,因为它使用对象的字段并允许有意访问。任何引用对象的人都可以访问对象字段。他们可以自由编辑。我的示例是模块化模式的一个简单实现。访问这些变量的唯一方法是通过getter/setter方法。向下滚动到模块模式部分。看看crockford的私有变量概念。他也是通过关闭来完成的!
Ferrari.prototype.constructor = Ferrari
function foo(args){
//this is a private variable.
 var _name = ""

 return{
  getname:function(){
   return _name
   }
  }

 }

 bar = new foo()

 // name can only be accessed from inside the foo function.