首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解JS的原型编程范式

理解JS的原型编程范式
EN

Stack Overflow用户
提问于 2016-05-02 21:52:46
回答 1查看 482关注 0票数 1

我正在努力更好地理解JavaScript以及它背后的含义。我读过关于基于JavaScript使用的原型的面向对象范式的不同指南,但我真的不能理解这种范式与常规的范式有什么不同。

在我看来,它似乎也是以同样的方式行事,只是使用了一种奇怪而棘手的语法。我说错了吗?它们之间的区别是什么?

您能给我一个具体的例子,在这些例子中,JS范例可以成功地使用,而常规的OOP范例并不是很适合?

EN

回答 1

Stack Overflow用户

发布于 2016-05-08 22:18:03

不同的是,在Java、C++、python、php和其他支持OOP的语言中,你通常有两个不同的语言元素-一个是Class,它用作元数据,然后我们根据类定义创建新的对象;object这种方式是语言的第二个元素。

在JavaScript中没有Class元素,只有object元素。我们可以创建一个对象,然后将其用作原型来创建其他对象,例如:

代码语言:javascript
复制
var animal = {
  "name": "Bim",
  "age": 5
};

// now we can use the animal object iself, for example pass it to some function
// that shows object name
function showName(obj) {
  alert(obj.name);
}
showName(animal);

// but we also can use it as a prototype to create new objects
var dog = Object.create(animal);
dog.bark = function() {
  alert(this.name + ": bark! bark!");
}
dog.name = 'Pluto';
dog.bark();

有一些方法可以用类模拟OOP,就像它在其他语言中工作一样,这可能是您在act in the same way, but only with a weird and tricky syntax中所指的。

实际上,不一定要有类,这取决于您的习惯和应用程序设计。可以只使用对象,特别是当您更喜欢组合而不是继承时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36984139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档