|
@@ -0,0 +1,34 @@
|
|
|
|
+// 单行注释
|
|
|
|
+/**
|
|
|
|
+ * 多行注释
|
|
|
|
+ */
|
|
|
|
+/**
|
|
|
|
+ * 属性 写在构造函数下
|
|
|
|
+ * 方法 写在原型对象下
|
|
|
|
+ */
|
|
|
|
+/**原型链:
|
|
|
|
+ * 当访问一个对象的属性时 先去对象的自身属性去找 找不到
|
|
|
|
+ * 会通过_proto_(每个实例化对象自带的一个属性(隐性的))去构造函数上找
|
|
|
|
+ * 如果未找到 在Object对象上找 还未找到 返回 undefined
|
|
|
|
+ */
|
|
|
|
+// 函数 构造函数
|
|
|
|
+function person(name,age) {
|
|
|
|
+ this.name = name;
|
|
|
|
+ this.age = age;
|
|
|
|
+ console.log(this.name,this.age)
|
|
|
|
+ /**
|
|
|
|
+ * 每一个构造函数(constructor) 都有一个prototype属性
|
|
|
|
+ * prototype(显性的)属性 指向原型对象
|
|
|
|
+ */
|
|
|
|
+ // 原型对象:定义在原型对象下的属性和方法 能被实例化对象所共享了
|
|
|
|
+ person.prototype.eat = function() {
|
|
|
|
+ console.log(this.name,'属性')
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+// var a = new Object()
|
|
|
|
+// new 实例化对象
|
|
|
|
+// 相当于创建了一个新的对象
|
|
|
|
+var person1 = new person('LiLi',100);
|
|
|
|
+var news1 = new person('喔喔',25);
|
|
|
|
+person1.eat();
|
|
|
|
+news1.eat();
|