静态方法,实例方法,原型方法的区别

静态方法,实例方法,原型方法的区别

基础知识

静态方法和实例方法的定义

A static method (or static function) is a method defined as a member of an object but is accessible directly from an API object's constructor, rather than from an object instance created via the constructor.
静态方法(或静态函数)是定义为对象成员的方法,但可以直接从API对象的构造函数访问,而不是通过构造函数创建的对象实例访问。
Methods called on object instances are called instance methods.
在对象实例上调用的方法称为实例方法。

内容取自MDN,点击跳转连接

区别

三种方法的区别主要在于

1.是否可以被构造函数和实例对象调用

方法类别是否可以被 构造函数 调用是否可以被 实例化对象 调用
静态方法可以不可以
实例方法不可以可以
原型方法不可以可以

2.内存空间分配情况(待验证)

Q:跟后台同时沟通 java 中的静态方法和实例方法有内存分配的区别,前端暂时没有找到官方资料支持,待验证,以下是结论
静态方法随构造函数一同生成,存放集中
实例方法随实例化对象生成产生,存放较为离散

验证

// 初始化构造函数
 const Parent = function() {
 	// 添加实例方法
	this.instanceFunc = function() {
	  console.log('可以访问实例方法');
	}
}
// 添加静态方法
 Parent.staticFunction = function() {
    console.log('可以访问静态方法');
 }
 // 添加原型方法
 Parent.prototype.protoFunc = function() {
    console.log('可以访问原型方法');
 }
 // 生成实例化对象
 const parent = new Parent()
 // 方法调用测试
 console.log('/* 静态方法测试 */');
 console.log('构造函数', Parent.staticFunction);
 console.log('实例化对象', parent.staticFunction);
 console.log('/* 实例方法测试 */');
 console.log('构造函数', Parent.instanceFunc);
 console.log('实例化对象', parent.instanceFunc);
 console.log('/* 原型方法测试 */');
 console.log('构造函数', Parent.protoFunc);
 console.log('实例化对象', parent.protoFunc);
 console.log(Parent.prototype);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值