本书籍是针对 Java 开发人员提供的入门 JavaScript 面向对象,本系列处于未完结状态,还在持续更新中。
作者在写作和整理过程中花费了大量时间和精力,另外服务器费用也是一笔不小的开支,如果你觉得我的文章和书籍对你有所帮助,可以请我喝杯咖啡或者农夫山泉:
如果在阅读过程中有任何疑问,可以去作者博客对应页面留言, 你也可以从我的体系树中找到对应文章。
本书籍是针对 Java 开发人员提供的入门 JavaScript 面向对象,本系列处于未完结状态,还在持续更新中。
作者在写作和整理过程中花费了大量时间和精力,另外服务器费用也是一笔不小的开支,如果你觉得我的文章和书籍对你有所帮助,可以请我喝杯咖啡或者农夫山泉:
如果在阅读过程中有任何疑问,可以去作者博客对应页面留言, 你也可以从我的体系树中找到对应文章。
我们知道在对象方法内部可以使用this来表示对象本身。
var hero = {
name:'Rafaelo',
sayName:function(){
return this.name;
}
}
>>> hero.sayName();
>>> "Rafaelo"
接下来我们通过构造器函数来创建对象
function Hero(){
this.occupation = 'Ninja';
}
>>> var hero = new Hero();
>>> hero.occupation;
>>> "Ninja"
我们可以看出构造器的函数来创建对象有两个比较好的特点: 1. 可以在创建对象的时候传参数。 2. 在使用的时候才真正创建和执行。
上一篇对继承进行了大量说明,回到我们的问题上,剩下的几个问题我们接下来看看
在经典的 Java 面向对象语言中,可以用关键字 interface 来定义接口,用 implement 来实现接口,而 JavaScript 虽然也是面向对象语言,但是它并没有内置这些,不过由于 JavaScript 的灵活性,我们可以通过模拟来实现,方法是使用一个辅助类和辅助函数来协助完成这一过程。
Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。那么,如果我们要把”属性”(property)和”方法”(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?
作为多年使用Java的我,首先开始思考如下问题:
在JavaScript中,类的定义只是一个Map键值对,没有其他。
var person = {
name : "xiaohong",
age : 18
}
那么JavaScript中的类中没有方法吗?有!但是也是键值对。
var person = {
name : "xiaohong",
age : 18,
eat : function(){
alert("i like eat meat");
}
}