流世幻羽

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

原型对象的指向改变

 function Person(age){
    	
    	this.age=10;
    	//在构造函数中的方法
    }
   //人的原型对象的方法
   Person.prototype.eat=function(){
   	console.log("人的吃");
   }
	//学生的构造函数
	 function Student(){
	 	
	 }
	 Student.prototype.sayHi=function(){
	 console.log("学生hi");
	 };
	 //学生的原型,指向了一个人的实例对象
	 Student.prototype=new Person(10);
	 
	 var stu=new Student();
	 
	 stu.eat();
	 console.log(stu.age);
	 stu.sayHi();
	 

原型对象指向了哪里

   function Person(age){
    	
    	this.age=10;
    	//在构造函数中的方法
    }
   //人的原型对象的方法
   Person.prototype.eat=function(){
   	console.log("人的吃");
   }
   var per =new Person(10);
	 //原型对象指向了哪里
	 console.log(per.__proto__==Person.prototype);
	 console.log(per.__proto__.__proto__== Person.prototype.__proto__);
	 console.log(Person.prototype.__proto__==Object.prototype);
	 console.log(Object.prototype.__proto__);

如果原型对象的指向改变了,要先去添加方法

   //如果原型指向改变了,那么就应该在原型改变之后添加原型方法
   
   function Person(age){
   	this.age=age;
   }
   //指向改变了,
   //先添加原型的方法
   Person.prototype.eat=function(){
   	console.log("人在吃");
   }
   //学生构造函数
   function Student(sex){
   	this.sex=sex;
   }
   //学生的原型中添加方法---先在原型中添加
   
   //改变了原型对象的指向
   Student.prototype.sayHi=function(){
   	console.log("你好啊");
   }
   
   Student.prototype=new Person(10);
   
   
   var stu=new Person();
   
   stu.eat();
   stu.sayHi();

实例对象和原型对象重命名的问题

//原型对象实例对象
function Person(age,sex){
	this.age=age;
	this.sex=sex;
}
//
Person.prototype.sex="女";
var per=new Person(10,"男");

  

 

posted on 2018-08-11 14:02  流世幻羽  阅读(471)  评论(0编辑  收藏  举报