Js如何利用prototype为类创建静态成员属性和方法

前言

为类创建静态成员,是面向对象语言的特点,js是可以通过prototype来实现这一特点

01

具体代码如下所示

// 用function 模拟一个类出来,同时也作为构造函数
function MyClass() {
    this.name = "https://coder.itclan.cn"; // 类的成员变量name
    this.myStaticFun = myStaticFun; // 类的成员函数,把私有函数放到外头,避免重复创建
}

// 把私有函数抽离出来
function myStaticFun() {
    return this.name;
}

// 为MyClass的prototype定义一个变量
MyClass.prototype.name = "itclanCoder";
// 为MyClass的ptototype定义一个函数,它的所有实例对象都有了
MyClass.prototype.myStaticFun = function() {
    alert("这是一个公有属性的方法");
}

var obj = new MyClass(); // 使用new实例化一个类
obj.myStaticFun(); // https://coder.itclan.cn

当私有属性与构造器函数添加的属性和方法名相同时,当访问到构造函数内私有属性时,直接就会返回,如果没有,就会沿着原型链,去prototype身上去找

如果还没有找到,会继续往上找,也就是Object顶级对象,要是还没有,那就会返回undefined

分析

prototype是js为每一个对象内置的隐藏属性,它会随着这个对象一直存在,当构造函数内的私有属性和私有方法与构造器函数原型下的属性和方法同名时

私有属性和方法要优先于共有属性

在上面的示例中,在构造器函数内定义了一个私有属性和方法,但同时也创建定义了共有属性和方法,定义在MyClass上,通过new语句实例化后,对象就有prototype的所有属性

Js中闭包的概念和具体使用

2023-01-07

ef9de6c650d2b6da87d32b558eda0e7e.jpeg

VueJs中如何自定义hooks(组合式)函数

2023-01-06

9779e0ec04642874e9c4808896d7dff7.jpeg

js如何引用同级元素

2023-01-05

5c44c49b1d327e21f6be3ceb689498f4.jpeg

JS如何实现倒计时效果

2023-01-04

391f4d15b6e032e0e151178503dcf070.jpeg
点击左下角查看更多

b075ac54af1bdce4f6f31673e4a07471.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值