JS原型对象2

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>

    function Pro() { }

    Pro.prototype.name = '张三'

    var a = new Pro()

    console.log(a.name);


    //in操作符只要通过对象能访问到属性就返回true
    console.log('name' in a);//true

    //通过对象的hasOwnProperty() 检查是否含有该属性
    console.log(a.hasOwnProperty('name'));//false
    //给a添加一个属性
    //通过a.hasOwnProperty()自身含有这个属性,返回true
    a.age = 18
    console.log(a.hasOwnProperty('age'));//true
    //检查自身有没有hasOwnProperty属性
    console.log(a.hasOwnProperty('hasOwnProperty'));//false
    //检查原型的检查自身有没有hasOwnProperty属性
    console.log(a.__proto__.hasOwnProperty('hasOwnProperty'));//false

    //原型对象也是对象,所以也有原型
    //  当需要一个属性和方法的时候,会在自身先寻找 有则使用
    //  当在自身没有寻找到则去原型对象中寻找,有则使用
    //  当在原型对象中也没有,就会去原型对象的圆形对象中寻找
    console.log(Pro.prototype.__proto__.hasOwnProperty('hasOwnProperty'));//true
    console.log(a.__proto__.__proto__);
    /*            ||
                  ||                  */
    console.log(Pro.prototype.__proto__); //原型对象也是对象,所有也有原型


    console.log(Pro.prototype.__proto__.__proto__);//null



  </script>
</body>

</html>
匿名

发表评论

匿名网友