美文网首页
js原型链实例

js原型链实例

作者: Tangbh | 来源:发表于2017-03-15 18:49 被阅读8次

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>原型链</title>
    <script type="text/javascript">
    //对象的类型
    // function f1(){};
    // var f2=function(){};
    // var f3=new Function('str','console.log(str)');

        // var o3=new f1();
        // var o1={};
        // var o2=new Object();
    
        // console.log(typeof Object); //function
    

    // console.log(typeof Function); //function
    // console.log(typeof o1); //object
    // console.log(typeof o2); //object
    // console.log(typeof o3); //object
    // console.log(typeof f1); //function
    // console.log(typeof f2); //function
    // console.log(typeof f3); //function
    // console.log('以下是对象的prototype');
    // console.log(typeof o1.prototype); //object
    // console.log(typeof o2.proto); //object
    // console.log(typeof o3.proto); //object
    // console.log(typeof f1.prototype); //function
    // console.log(typeof f2.prototype); //function
    // console.log(typeof f3.prototype); //function

    //原型链生成对象详解
    // var person=function(name){
    // this.name=name;
    // }
    // person.prototype.getName=function(){
    // return this.name;
    // }
    // var tbh=new person('tangbohao');
    // console.log(tbh.proto);
    // console.log(tbh.proto === person.prototype);
    // console.log(person.prototype.proto === Object.prototype);
    // var tbh=new person('tangbohao');
    // console.log(Object.prototype.proto)
    // document.write(tbh.getName());

    //原型链实现继承实例
    // function Person(name){
    // this.name=name;
    // this.ClassName="person";

    // }
    // Person.prototype.getClassName=function(){
    // console.log(this.className);
    // }
    // function Man(){

    // }
    // //Man.prototype=new Person(); //new一个父类的示例,赋值给子类的原型,这种方法子类无法通过父类创建私有属性
    // Man.prototype=new Person("qwer");
    // var man=new Man;

    //利用原型链,调用构造函数的方式
    // function Person(name){
    // this.name=name;
    // this.ClassName="Person";
    // }
    // Person.prototype.getName=function(){
    // console.log(this.name);
    // }
    // function Man(name){
    // Person.apply(this,arguments);
    // }
    // var man1=new Man('zhangsan');
    // var man2=new Man('lisi');

    //es6的继承方式
    class Person{
    //static count=0;
    constructor(name){
    this.name=name;
    //this.count++;
    }
    getName(){
    console.log(this.name);
    }
    static test(){
    console.log("静态方法");
    }
    }

    class Man extends Person{
    constructor(name){
    super(name);
    this.sex="male";
    }
    }

    var man=new Man("wangwu");
    man.getName();
    Man.test();
    // var q={
    // qwe:"123",
    // asd:"456",
    // zxc:"789"
    // }

    </script>
    

    </head>
    <body>

    </body>
    </html>

    相关文章

      网友评论

          本文标题:js原型链实例

          本文链接:https://www.haomeiwen.com/subject/awkrnttx.html