| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- // function fn1() {}
- // var x = function() {}
- // ( function() {
- // console.log("你好")
- // })()
- /**
- * 构造函数
- * 1.首字母大写
- * 2.new实例化调用
- * 3.this指向当前实例
- * 4.构造函数 不使用return返回值
- * 属性写在构造函数中 方法写在原型下
- */
- function Person() {
- console.log(this)
- // return 12;
- this.name = '图图';
- this.age = 3
- }
- /**
- * 原型
- * 1.所有的构造函数中都自带了一个prototype(显性)属性,指向当前构造函数的原型
- * 2.所有的构造函数中都自带了一个constructor(构造器)属性,指向的是当前原型的构造函数
- * 3.构造韩式可以通过new去进行实例化 产生构造函数的实例化对象
- * 4.实例化对象可以通过_proto_(隐性)属性去访问 该构造函数的原型对象
- *
- */
- Person.prototype.say = function() {
- console.log("你好")
- }
- // var p = new Person();
- // console.log(p);
- // p.say();
- var person = new Person();
- console.log(person)
- console.log(person.__proto__ == Person.prototype)
- console.log(Person.prototype.constructor == Person)
- console.log(Object.getPrototypeOf(person) === Person.prototype)
- /**
- * 原型链
- * 访问实例化对象属性 先从对象的本身找
- * 找不到 通过_proto_去对象原型找
- * 若还未找到 则在原型对象的原型上查找 找到则返回 找不到返回undefined
- */
- </script>
- </body>
- </html>
|