Professor.prototype.tSkill = 'Java';
function Professor() {
}
var professor = new Professor();
Teacher.prototype = professor;
function Teacher() {
this.mSkill = 'JS/JQ'
this.students = 500;//原生类型
this.success = { //引用类型(主要是函数,数组,对象)
alibaba: '28',
tencent: '30'
}
}
var teacher = new Teacher();
Student.prototype = teacher;
function Student() {
this.pSkill = 'HTML/CSS'
}
var student = new Student();
student.students++;//<===>student.students = student.students + 1;
// student自己本身其实是没有students这个属性的,那这里就增加一个属性,而后再把501赋值给这个属性
//类似于下面这个代码:
// var obj bj= {name:'obj'}; obj.age = 13;
//而后Student的属性里面就有了students:501
student.success.baidu = '100';
console.log(student, teacher);
//student:
// Object { pSkill: "HTML/CSS", students: 501 }
// pSkill: "HTML/CSS"
// students: 501
// <prototype>: Object { mSkill: "JS/JQ", students: 500, success: {…} }
// mSkill: "JS/JQ"
// students: 500
// success: Object { alibaba: "28", tencent: "30", baidu: "100" }
// alibaba: "28"
// baidu: "100"
// tencent: "30"
// <prototype>: Object { … }
// <prototype>: Object { }
// <prototype>: Object { tSkill: "Java", … }
// constructor: function Professor()
// tSkill: "Java"
//teacher:
// Object { mSkill: "JS/JQ", students: 500, success: {…} }
// mSkill: "JS/JQ"
// students: 500
// success: Object { alibaba: "28", tencent: "30", baidu: "100" }
// <prototype>: Object { }
// <prototype>: Object { tSkill: "Java", … }
// constructor: function Professor()
// tSkill: "Java"
//子代可以更改父代里面的引用类型数据
//子代不能更改父代里面的原生类型数据
//小结:原型链的终点:
// 1. Object.prototype
//2.Object.prototype的属性里面有个toString的方法
function Car() {
this.brand = 'Benz';
}
Car.prototype = {
brand: 'Mazda',
intro: function() {
console.log('我是' + this.brand + '车');
}
}
var car = new Car();
// this指向实例对象本身
car.intro(); // 我是Benz车; car这个实例对象调用的intro方法
// 直接访问原型
Car.prototype.intro(); // 我是Mazda车; Car.prototype(注意:prototype也是一个对象)调用的intro方法
//其实整个调用过程为: 先到构造函数里面找有没对应的属性或者方法,没有的话再到prototype里面去找
原文始发于微信公众号(迪哥讲事):JS基本功系列-原型里面2个知识点记录
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论