通过原型扩展对象

来源:互联网 发布:大学生开淘宝网店 编辑:程序博客网 时间:2024/05/17 09:34

原型对象

系统默认自动为js函数生成空的原型(prototype)对象。如果某个函数是类的构造函数,那么它的原型对象可以被用来对类进行扩展。
当给构造函数的prototype属性赋值时,他们会自动扩展到该类的所有实例

  • 使用prototype属性为对象添加属性
eg:<script>    function Cat(name){        this.name = name;    }    var cat1 = new Cat("zch1");    var cat2 = new Cat("zch2");    alert(cat1.name + "---" + cat2.name);    //扩展属性与方法    Cat.prototype.action = functon(){        alert(this.name + "miao-miao---");    }    Cat.prototype.friend = "hhd";    //Object是所有对象的父亲,也可以通过他来扩展属性    Object.prototype.Animal = "you are a animal!";    cat1.action();    cat2.action();    alert(cat1.friend + "---" + cat2.friend);    alert(cat1.animal);</script>

原型查找链

在程序获取对象的属性时,js会首先查看该属性是否直接定义在那个对象中。
其查找顺序以Cat对象为例:

  • 对象自身,就像cat1,cat2
  • Cat.prototype
  • Object.prototype

以上查找属性的顺序,就是属性查找链

0 0
原创粉丝点击