面向对象的JavaScript-003

Posted shamgod

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的JavaScript-003相关的知识,希望对你有一定的参考价值。

1.

 1 // Since javascript doesn\'t exactly have sub-class objects, prototype is a useful workaround to make a “base class” object of certain functions that act as objects. For example:
 2     var Person = function() {
 3       this.canTalk = true;
 4     };
 5 
 6     Person.prototype.greet = function() {
 7       if (this.canTalk) {
 8         console.log(\'Hi, I am \' + this.name);
 9       }
10     };
11 
12     var Employee = function(name, title) {
13       Person.call(this);
14       this.name = name;
15       this.title = title;
16     };
17 
18     Employee.prototype = Object.create(Person.prototype);
19     Employee.prototype.constructor = Employee;
20 
21     Employee.prototype.greet = function() {
22       if (this.canTalk) {
23         console.log(\'Hi, I am \' + this.name + \', the \' + this.title);
24       }
25     };
26 
27     var Customer = function(name) {
28       Person.call(this);
29       this.name = name;
30     };
31 
32     Customer.prototype = Object.create(Person.prototype);
33     Customer.prototype.constructor = Customer;
34 
35     var Mime = function(name) {
36       Person.call(this);
37       this.name = name;
38       this.canTalk = false;
39     };
40 
41     Mime.prototype = Object.create(Person.prototype);
42     Mime.prototype.constructor = Mime;
43 
44     var bob = new Employee(\'Bob\', \'Builder\');
45     var joe = new Customer(\'Joe\');
46     var rg = new Employee(\'Red Green\', \'Handyman\');
47     var mike = new Customer(\'Mike\');
48     var mime = new Mime(\'Mime\');
49 
50     bob.greet();
51     // Hi, I am Bob, the Builder
52 
53     joe.greet();
54     // Hi, I am Joe
55 
56     rg.greet();
57     // Hi, I am Red Green, the Handyman
58 
59     mike.greet();
60     // Hi, I am Mike
61 
62     mime.greet();

以上是关于面向对象的JavaScript-003的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

PHP面向对象之选择工厂和更新工厂

面向面试编程代码片段之GC

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程