JS 原型与原型链的介绍与使用

本文详细介绍了JavaScript中的原型概念,包括如何访问和修改原型中的方法,原型链的形成,以及内置对象和函数对象的原型链。还讨论了实例成员、静态成员以及诸如`_proto_`、`constructor`、`instanceof`、`hasOwnProperty`和`isPrototypeOf`等关键属性和方法的用途。
摘要由CSDN通过智能技术生成

原型介绍与使用

每一个构造函数被创建,系统都会自动创建一个与构造函数相对应的对象,
那么这个对象就是原型。
访问原型对象的方法, 构造函数名.prototype

function Student(name,age){
   
			this.name=name;
			this.age=age;
		}
		Student.prototype.sayHi=function(){
   
			console.log("hello,我是"+this.name+",我来自湖北");
		}
		var s1=new Student("小明",24);
		s1.sayHi();
console.dir(Student);
		
console.log(Student.prototype);

构造函数的原型是一个对象 既然是对象 那么可以往里面添加属性和方法

Student.prototype.type="children";
		Student.prototype.read=function(){
   
			console.log("我是"+this.name+",在读课文");
		}
		
		var s3=new Student("Tony",14);
		console.log(s3.type);
		s3.read();

往原型中添加的方法哪些可以访问
构造函数自己可以访问

console.log(Student.prototype.type);

该构造函数实例化出来的对象可以访问

var s3=new Student("Tony",14);
			console.log(s3.type);
			s3.read();

什么样的数据可以放进原型

该构造函数实例化出来的所有对象都共有的属性或者方法

function Student(name,age){
   
			this.name=name;
			this.age=age;
		}
		//因为每一个实例化对象都有一个sayHi的方法 而且执行的函数体一样  所以可以写进原型里
		Student.prototype.sayHi=function(){
   
			console.log("hello,我是"+this.name+",我来自湖北");
		}

构造函数的原型是一个对象 既然是对象 那么可以往里面添加属性和方法

Student.prototype.type="children";
		Student.prototype.read=function(){
   
			console.log("我是"+this.name+",在读课文");
		}
		
		//共有的属性或者方法 指的是所有的实例化对象都有这个属性 并且属性都一样
		Student.prototype.gender="女"
		
		var s1=new Student("二狗",15);
		console.log(s1.gender)//女

构造函数访问对象的规则

原型 :构造函数名.prototype
最先访问实例化对象自己的 如果没有 就访问构造函数里面的 如果还没有就访问原型里面的(就近原则)

function Dog(name,breed){
   
		this.name=name;
		this.breed=breed;
		//构造函数内部的方法
		this.sayHi=function(){
   
			console.log("我是构造函数里面的sayHi方法");
		}
	}
	
	//构造函数原型里面的
	Dog.prototype.sayHi=function(){
   
		console.log("汪汪汪,我是"+this.name);
	}
		
	var d1=new Dog("小白","博美");
	d1.sayHi();
	
	//实例化对象自己的 单个对象独有的方法
	d1.sayHi=function(){
   
		console.log("我是d1里面的sayHi方法");
	}
		
	d1.sayHi();

修改原型中的方法

访问原型 必须要使用 构造函数名.prototype

function Cat(name,age){
   
			this.name=
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值