zoukankan      html  css  js  c++  java
  • Javascript[obj&prototype&class] 实践学习1

    1、函数(构造函数)

    var p = new Person('Herry', '22');
    alert(p.age);
    function Person(name, age) {
       this.name = name;
       this.age = age;
    }
    这时我们就有了一个 function,而且这个 function 会有一个 prototype 的属性, 通过这个属性可以访问该函数的原型,
    从图中可以看出,其实不仅仅是可以通过 Person.prototype 访问原型,原型中也有一个 constructor 的属性,Person.prototype.constructor 就指向 Person 函数自身。

     

    创建实例:
    1 var p1 = new Person("Jack", 20);
    2 var p2 = new Person("Peter", 22);
    3 alert(p2.name); // Peter
    4 alert(p2.constructor); // 函数自身
    5 alert(Person.prototype.constructor); // 函数自身
    当创建了实例 p1 和 p2 之后,p1, p2 内都存在内部属性 [ [ Prototype ] ],
    而这个属性,其实就指向构造函数 Person 的原型,有趣的是 p1 和 p2 和构造函数 Person 本身没有直接的关系, 它们的联系就是它们都指向了同一个原型

     

    每当读取对象的某个属性时,都会执行一次搜索,目标是具有给定名字的属性,
    搜索首先从对象实例本身开始,如果在实例中找到了具有给定名字的属性,则返回该属性的值,
    如果没有找到,则继续搜索该实例的原型,在原型对象中查找具有给定名字的属性
    Person.prototype.sayHi = function() {
       document.write("<div>Hi</div><hr>");
    }
    var say = new Person(); 
    say.sayHi(); // Hi
    原型肯定是一个object;
    原型的构造函数,指向函数本身,输出其本身的构造代码;
  • 相关阅读:
    Select loop
    shell学习
    硬链接与软连接的区别_(转)
    Windows 远程桌面连接Ubuntu16.04图像界面
    C# mysql 连接Apache Doris
    Hadoop 2.7.3 分布式集群安装
    ubuntu 16.04安装Chrome离线crx插件包
    RPC框架之Thrift分析(转)
    ubuntu 16.04安装ibus中文输入法
    secureCRT下linux rz命令上传文件失败或变小(破损)的问题解决方法
  • 原文地址:https://www.cnblogs.com/smallgo/p/3110273.html
Copyright © 2011-2022 走看看