原型模式
原型对象就是相当于java的static,所有实例对象可以直接用静态的属性或者方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
//
<!--相当于java的类-->
function MyClass() {
}
//想当于创建一个对象
var mc = new MyClass()
MyClass.prototype.a = 3
//类的原型和对象实例的原型是同一个
console.log(MyClass.prototype)
console.log(mc.__proto__)
console.log(MyClass.prototype == mc.__proto__)
console.log("---------")
//类的原型赋值,实例对象可以直接拿到值,方法也是同理
console.log(mc.a)
//当我们去访问对象的一个属性或调用对象的一个方法时,它会先自身中寻找,
// 如果在自身中找到了,则直接使用。
// 如果没有找到,则去原型对象中寻找,如果找到了则使用,
// 如果没有找到,则去原型的原型中寻找,依此类推。直到找到Object的原型为止,Object的原型的原型为null,
//原型的原型,就是object
console.log(mc.__proto__.__proto__)
//原型的原型的原型,为null
console.log(mc.__proto__.__proto__.__proto__)
</script>
</head>
<body>
</body>
</html>