javascript prototype

/Javascript规定,每一个构造函数都有一个prototype属性,指向另一个对象。
这个对象的所有属性和方法,都会被构造函数的实例继承。
/

    function person(name,age){
        this.name = name;
        this.age = age;
    
    }
    person.prototype.eat = function() {
        console.log("eat a shit!");
    }
    person.prototype.HAND_NUM = 2;
    
    var p1 = new person("a",10);
    var p2 = new person("b",5);
    
    
    
    //如果实例(p1)包含了构造函数原型(person.prototype)的方法和属性,那就返回true
    console.log(person.prototype.isPrototypeOf(p1));//true
    
    //name是person自己构造的,属于自己
    console.log(p1.hasOwnProperty("name"));//true
    //HAND_NUM是在person.prototype上面定义的,不属于person自己的
    console.log(p1.hasOwnProperty("HAND_NUM"));//false
    
    //in 不管是对象本身(this)的属性,还是原型(prototype)的属性,只要存在,都为ture
    console.log("age" in p1);//true
    console.log("HAND_NUM" in p1);//true
    
    //遍历实例对象中的属性
    for(var prop in p1){
        console.log(p1[prop]);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 刚一直在研究 JavaScript 的 Decorator 模式。然后好多教程不约而同的提到了 Object...
    onizuka_jp阅读 1,917评论 0 1
  • JavaScript prototype 属性 每一个构造函数都有一个属性叫做原型(prototype),这个属性...
    小沫360阅读 1,274评论 0 0
  • javascript prototype 原型法的主要思想是,现在有个类A,想要创建一个类B,这个类是以A为原型的...
    并肩走天涯阅读 2,425评论 0 0
  • js编程半年,起初没有用OOP的方式(一是因为js的class理解起来有点困难,二是觉得当前业务没有那么复杂,无需...
    NoteCode阅读 3,669评论 2 1
  • 每个函数都有一个prototype属性对象,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实...
    深沉的简单阅读 1,553评论 0 0