JavaScript高级第02天笔记

这里写目录标题1.构造函数和原型1.1对象的三种创建方式1.2静态成员和实例成员1.2.1实例成员1.2.2静态成员1.3构造函数的问题1.4构造函数原型prototype1.5对象原型1.6constructor构造函数1.7原型链1.8构造函数实例和原型对象三角关系1.9原型链和成员的查找机制1.构造函数和原型1.1对象的三种创建方式1、字面量方式var obj={};2、new关键字var ll=new Object();3、构造函数方式function Love(){ thi
摘要由CSDN通过智能技术生成

1.构造函数和原型

1.1对象的三种创建方式

1、字面量方式

var obj={
   
};

2、new关键字

var ll=new Object();

3、构造函数方式

function Love(name,age){
   
	this.name=name;
	this.age=age;
	this.say=function(){
   
	console.log("沙浪嘿哟")
	}
	}
var ll=new love("罗罗",20)
ll.say();

1.2静态成员和实例成员

1.2.1实例成员

实例成员是构造函数内部通过this添加的成员,如下的name、age、say就是实例成员,实例成员只能通过实例化的对象进行访问

function Love(name,age){
   
	this.name=name;
	this.age=age;
	this.say=function(){
   
	console.log("沙浪嘿哟")
	}
	}
var ll=new Love("罗罗",20)
ll.say();
//实例成员只能通过实例化的对象进行访问
console.log(ll.name)

1.2.2静态成员

静态成员是通过构造函数直接添加的成员,如下的sex就是静态成员,静态成员只能通过构造函数来访问

function Love(name,age){
   
	this.name=name;
	this.age=age;
	this.say=function(){
   
	console.log("沙浪嘿哟")
	}
}
Love.sex="男"
var ll=new Love("罗罗",20)
//静态成员只能通过构造函数来访问
console.log(Love.sex)

1.3构造函数的问题

function Love(name,age){
   
	this.name=name;
	this.age=age;
	this.say=function(){
   
	console.log("沙浪嘿哟")
	}
	}
var ll=new Love("罗罗",20)
var lz=new Love("玲玲",18)
console.log(ll.say===lz.say)//打印结果为false

由此可见,不同的实例对象会占用不同地址的函数,导致浪费内存的问题,我们希望不同的对象可以使用同一个函数,从而节约内存。

1.4构造函数原型prototype

构造函数通过原型分配的函数是所有对象所共享的。

JavaScript 规定,每一个构造函数都有一个prototype 属性,指向另一个对象。注意这个prototype就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有。

我们可以把那些不变的方法,直接定义在 prototype 对象上,这样所有对象的实例就可以共享这些方法。

function Love(name.age){
   
	this.name=name;
	this.age=age;
}
	Love.prototype.say=function(){
   
	console.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值