前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Js如何利用prototype为类创建静态成员属性和方法

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

作者头像
itclanCoder
发布2023-02-26 14:56:11
1.9K0
发布2023-02-26 14:56:11
举报
文章被收录于专栏:itclanCoder

前言

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

01

具体代码如下所示

代码语言:javascript
复制
// 用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的所有属性

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 itclanCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档