关于JavaScript是否是面向对象的语言存在一些问题.甚至一句话,"只是因为一种语言有对象并不能成为OO".
JavaScript是面向对象的语言吗?
JavaScript是一种轻量级且功能强大的语言,但它经常被误解并且难以学习(特别是关于其面向对象的编程).
学习JavaScript OOP有哪些好的材料(博客,截屏和书籍)?主题可以是任何东西,但我们暂时不包括浏览器,AJAX和库.
您是如何在JavaScript中学习函数式编程,闭包,对象,继承和设计模式的?我个人希望看到更多的代码示例,因为我上面提到的一些书籍使示例保持最小化.
(编辑:由于这篇文章现在是社区的努力,请帮助维护和开发以下资源列表!)
图书
影片
在堆栈溢出
其他
为什么基于类的OO如此受欢迎而不是基于原型的OO?他们是否在学校教授后者?虽然Javascript是基于原型的,但大多数人主要使用它,或者通过试图模拟基于类的系统的框架.
我知道Sun已经对Self进行了一些研究- 是否有关于原型oo的其他任何知识来源?最好是可以自学的东西.
我找到了一本包含已发表论文的书:基于原型的编程:概念,语言和应用
有人读过吗?
-
所以我给了我最大的回答.不过,我真的不太满意.我本来希望听到更多技术性的答案.也许我没有很好地解释自己.
我一直在使用javascript,但从未学过语言超过基础知识.我正在阅读John Resig的"Pro Javascript技术" - 我想出了一些问题,但我没有在书中或谷歌上找到答案.
约翰在他的书中给出了这个例子:
功能#1
function User( name, age ){
this.name = name;
this.age = age;
}
// Add a new function to the object prototype
User.prototype.getName = function(){
return this.name;
};
User.prototype.getAge = function(){
return this.age;
};
var user = new User( "Bob", 44 );
console.log("User: " + user.getName() + ", Age: " + user.getAge());
Run Code Online (Sandbox Code Playgroud)
我还在学习原型属性,所以我尝试写类似的东西:
功能#2
function User (name, age ) {
this.name = name;
this.age = age;
this.getName = function() {
return this.name; …Run Code Online (Sandbox Code Playgroud) 根据我的观察,我正在阅读的关于JavaScript的书说明有一个带有JavaScript的OOP?它并没有说太多,我的意思是没有解释如何定义一个类.有人可以给我一个样本片段吗?
谢谢