构造函数可以制作一个老虎对象
js没有类的概念, 因此js的继承不是通过类的继承实现的,而是通过原型的概念来实现的
//这个构造函数用来制造对象
function tiger() {
this.bark = function() {
alert('我是百兽之王');
}
}
var hu = new tiger();
上面的hu
对应着真正的老虎, 而tiger
对应着
照猫画虎: 我们明确的对tiger函数指定, 用某个具体的cat对象,做老虎的原型,并创建老虎对象
function cat() {
this.climb() {
alert('我会爬树');
}
}
var bosi = new cat();
hu.bark();
bosi.climb();
hu.climb(); //老虎不会爬树
//开始继承
tiger.prototype = new cat();
var hnhu = new tiger();
hnhu.climb();
在这个过程中, 发生了什么?
- 构造空对象hnhu{}
- hnhu.bark = function() {}
- hnhu.proto = tiger.prototype //这是继承的关键
就是说---js中, 每个对象都有一个__proto__指向其原型对象
function cat() {
var climb = function () {
alert("我会爬树");
}
}
var bosi = new cat();
console.log(cat.prototype.constructor); //因为原型对象的constructor指向cat, 所以显示为cat
consloe.log(cat.prototype._proto_);
老虎现在自身对象上面寻找, 没有爬树方法,去找原型,原型cat对象上有此方法
给所有的对象加上一个唱歌功能
Obkect.prototype.sing = function() {
alert("出场我的爱");
}
function Pig() {
this.eat = "30kg"; //每天吃30kg
}
标签:function,继承,cat,tiger,对象,讲解,var,new,js
From: https://www.cnblogs.com/zhengel/p/16893767.html