提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、原型是什么?
示例:1.所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象
2.所有函数都有一个prototype(原型)属性,属性值是一个普通的对象
3.所有引用类型的__proto__属性指向它构造函数的prototype
二、原型链
1.原型的形式
代码如下(示例):
**数组的原型**:
var a = [1,2,3];
a.__proto__ === Array.prototype; // true
**函数的原型**:
function Person(name) {
this.name=name;
}
Person.prototype.eat=function () {
console.log(this.name+"吃东西");
};
Person.prototype.sleep=function () {
console.log(this.name+"睡觉");
}
var p1=new Person("小明");
p1.eat();//小明吃东西
p1.sleep();//小明睡觉
var p2=new Person("小利");
p2.eat();//小利吃东西
p2.sleep();//小利睡觉
console.dir(p1);
console.dir(p2);
2.原型链
代码如下(示例):
当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到就会再在构造函数的prototype的__proto__中查找,这样一层一层向上查找就会形成一个链式结构,我们称为原型链
总结
提示:这里对文章进行总结:
__proto__指向该对象所在的构造函数的原型对象。
实例对象和构造函数之间没用直接的关系。原型对象与实例对象之间用原型(proto)关联,这种关系叫做原型链。
我是这样理解原型链的(可能不是很准确)我向我爸要零花钱,我爸也没有钱,那么我就向我奶奶要,奶奶要是也没有,就继续找别人要。