|
@@ -0,0 +1,57 @@
|
|
|
+<!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() {
|
|
|
+ console.log(this, "this"); // window
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ let a = fn1();
|
|
|
+ // let xxx = function(){};
|
|
|
+ // (function(){})()
|
|
|
+ console.log(a, "a");
|
|
|
+ /**
|
|
|
+ * 构造函数:
|
|
|
+ * 1.this指向当前对象本身
|
|
|
+ * 2.首字母大写
|
|
|
+ * 3.返回值不用return
|
|
|
+ * 4.使用时 必须通过new调用
|
|
|
+ *
|
|
|
+ *
|
|
|
+ * 属性 写在构造函数下
|
|
|
+ * 方法 写在原型下
|
|
|
+ */
|
|
|
+ function Person(a, b) {
|
|
|
+ this.name = a;
|
|
|
+ this.age = b;
|
|
|
+ console.log("person", this);
|
|
|
+ }
|
|
|
+
|
|
|
+ Person.prototype.eat = function() {
|
|
|
+ console.log(this.name + '该吃饭了')
|
|
|
+ }
|
|
|
+ // 实例化对象
|
|
|
+ let p = new Person("瑶一瑶", 4);
|
|
|
+ console.log(p);
|
|
|
+ p.eat()
|
|
|
+ /**
|
|
|
+ * 原型:
|
|
|
+ * 1.构造函数中自带了prototype(显性)属性 指向 当前的原型
|
|
|
+ * 2.构造函数中自带了一个属性constructor(构造器) 指向prototype的构造函数
|
|
|
+ * 3.当前实例化对象中自带一个_proto_(隐性)属性 指向当前构造函数原型
|
|
|
+ */
|
|
|
+ /**
|
|
|
+ * 原型链:
|
|
|
+ * 访问实例化对象,在对象本身属性查找
|
|
|
+ * 通过_proto_(原型自带的一个隐型方法查找)去原型上找
|
|
|
+ * 若还找不到 则在原型对象上的prototype上查找(Object)若找到返回 若没有则返回null
|
|
|
+ */
|
|
|
+ </script>
|
|
|
+ </body>
|
|
|
+</html>
|