<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 将方法定义在全局作用域中很不安全
/*
在创建的每一个函数,解析器都会向函数中传递一个属性prototype
当函数通过构造函数进行构造时,都会有一个隐含的属性(因为原来的函数本身隐含的含有prototype对象)指向原型对象
prototype属性指向原型对象
*/
//隐含prototype属性,是一个对象
function yuanXing(){
}
yuanXing.prototype.a = 123
//隐含__proto__属性对象
var pro = new yuanXing()
console.log(pro.a)
//通过构造函数创建的对象,所包含的隐函数型proto都指向一个地址。同一各类的实例都可以访问到实例对象
//可以将对象中共有的内容统一设置到原型对象中
//可以向构造函数的原型对象中添加公共属性
//当访问对象的属性或方法时,先寻找类是否又要寻找的属性;如果没有则回去原型对象中寻找
//mc.hasOwnproperty(要检查的属性名)检查对象自身中是否含有该属性,只有对象自身含有该属性时,才会返回true
//hasOwnproperty()方法存在于原型对象的原型对象中。
//是对象就含有原型对象
//当使用对象的属性会方法时,会现在自身中寻找,如果自身没有,则在原型对象中寻找,如果还没有,则去原型的原型对象中去找
</script>
</head>
<body>
</body>
</html>