创建方式
1.使用Object或对象字面量创建对象
2.工厂模式创建对象
3.构造函数模式创建对象
4.原型模式创建对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> // 1.使用Object内置的构造函数来创建对象 var person = new Object(); person.name = '热狗'; person.age = 20; person.fav = function () { alert(this.name) }; person.fav(); // 2.字面量方式创建 var person = { name: '热狗', age:18, fav:function () { alert(this.name) } }; person.fav(); // 3.工厂模式 function createPerson() { var person = new Object(); person.name = '热狗'; person.age = 20; person.fav = function () { alert(this.name) }; return person; } var p1 = createPerson(); function createFruit() { var fruit = new Object(); fruit.name = '热狗'; fruit.age = 20; fruit.fav = function () { alert(this.name) }; return fruit; } var f1 = createFruit(); console.log(p1 instanceof Object); console.log(f1 instanceof Object); </script> </body> </html>
构造函数创建对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> // 构造函数创对象 function Person(name,age) { this.name = name; this.age = age; this.fav = function () { alert(this.name) } } var p1 = new Person('热狗', 18); console.log(p1); console.log(p1 instanceof Person); </script> </body> </html>
原型模式创建对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> function Person(name, age) { this.name = name; this.age = age; } // Person.prototype它是person的父类 Person.prototype.showName = function () { // this指向的是person console.log(this.name); }; var p1 = new Person('热狗', 18); p1.showName(); // 多态: 如果现在两个类都有共同的方法,那么我们把共同测方法抽取出来成为一个基类, // 然后这两个类继承这个基类,然后调用相同的方法它们所处的这个形态就不一样 // 程序员 java程序员 python程序员他们都是程序员,但是他们继承程序员这个类, // 他们调用相同的方法但是得到的结果就不一样 </script> </body> </html>