基于原型的面向对象:对象是依靠构造器利用原型构造的。
1、字面式对象声明
2、构造器创建对象
3、原型链
每个由构造器创建的对象拥有一个指向构造器prototype属性值的隐式引用,这个引用称为原型。
每个原型可以拥有指向自己原型的隐式引用(原型的原型),即所谓的原型链。
1、字面式对象声明
点击(此处)折叠或打开
- var person={
- name:'zhangsan',
- sex:1,
- age:20,
- action:function(){
- alert('abc');
- }
- };
- person.like='H';
- delete person['like'];
点击(此处)折叠或打开
- function person(){
- this.height=167;
- }
- person.prototype={
- name:'zhangsan',
- age:20,
- sex:1,
- action:function(){
- alert('abc');
- }
- }
- var p=new person();
- for(var i in p){
- console.log(i);
- }
- for(var i in p){
- if(p.hasOwnProperty(i)){
- console.log(i);
- }
- }
每个由构造器创建的对象拥有一个指向构造器prototype属性值的隐式引用,这个引用称为原型。
每个原型可以拥有指向自己原型的隐式引用(原型的原型),即所谓的原型链。
点击(此处)折叠或打开
- function person(){
- }
- var p=new person();
- // 对象的隐式引用指向了构造器的prototype属性。
- console.log(p.__proto__===person.prototype);//true
- // 原型本身是一个Obect对象
- console.log(person.prototype.__proto__===Object.prototype);//true
- // 构造器person本身是一个函数对象
- console.log(person.__proto__===Function.prototype);//true
-
-
- function Person(){
- }
- Person.prototype={
- name:"Person",
- action:function(){
- alert('abc');
- }
- };
-
- function Man(){
- this.name="man";
- }
- //创建Man对象和Person对象之间的原型链
- Man.prototype=new Person();
- var man=new Man();
- console.log(man.__proto__===Man.prototype);//true
- console.log(Man.prototype.__proto__===Person.prototype);//true
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26066458/viewspace-2123860/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26066458/viewspace-2123860/