|
@@ -0,0 +1,48 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="en">
|
|
|
+<head>
|
|
|
+ <meta charset="UTF-8">
|
|
|
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
+ <title>Document</title>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+ <script>
|
|
|
+ function Person(name,age){
|
|
|
+ this.name = name
|
|
|
+ this.age = age
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ 所有的构造函数下面都有一个prototype 属性
|
|
|
+ 这个属性指向它的原型对象
|
|
|
+
|
|
|
+ 原型对象的特点: 声明在原型对象下面的属性和方法 都被实例化对象所共享
|
|
|
+ 属性写在 构造函数里
|
|
|
+ 方法写在 原型对象下
|
|
|
+ */
|
|
|
+ Person.prototype.eat = function(){
|
|
|
+ console.log(this.name + 'eat')
|
|
|
+ }
|
|
|
+ var p1 = new Person('zs',30)
|
|
|
+ p1.eat()
|
|
|
+ console.log(p1)
|
|
|
+
|
|
|
+ /*
|
|
|
+ 继承父类的属性 在子类的构造函数里面 通过调用父类的.call 去继承
|
|
|
+ 子类的继承对象 = new 父类 继承方法
|
|
|
+ */
|
|
|
+
|
|
|
+ function Coder(name,age){
|
|
|
+ Person.call(this,name,age)
|
|
|
+ }
|
|
|
+ /* 继承父类的方法 */
|
|
|
+ Coder.prototype = new Person()
|
|
|
+ Coder.prototype.constructor = Coder
|
|
|
+
|
|
|
+ console.log(Coder.prototype.constructor)
|
|
|
+ var c1 = new Coder('lisi',20)
|
|
|
+ console.log(c1)
|
|
|
+ c1.eat()
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+</html>
|