js构造函数的实例成员和静态成员

本文深入解析了JavaScript构造函数中的实例成员与静态成员的区别及应用。实例成员在构造函数内部定义,仅可通过实例化对象访问;静态成员则直接附加于构造函数上,构造函数自身即可调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js构造函数的实例成员和静态成员

构造函数是一种特殊的函数,主要用来初始化对象,也就是为对象成员(属性,方法)赋初始值。
Js的构造函数中可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this 上添加,这两种添加方式所添加的就是静态成员和实例成员。

1.实例成员

实例成员就是在构造函数内部添加的成员,只能由实例化的对象来访问

function Star(uname,age){
        this.uname = uname;
        this.age = age;
        this.sing = function(){
            console.log("我会唱歌");
        }
}
var ldh = new Star('刘德华',18);//创建实例化对象
console.log(ldh.uname);//用实例化对象ldh访问uname       正确
ldh.sing();//用实例化对象ldh访问sing()                  正确
console.log(Star.uname);//用构造函数访问uname           报错

上述,uname age sing就是实例成员,用实例化对象ldh来访问是正确的
用Star构造函数来访问是错误的

2.静态成员

静态成员就是在构造函数本身上添加的成员,只能由构造函数本身来访问

function Star(uname,age){
        this.uname = uname;
        this.age = age;
        this.sing = function(){
            console.log("我会唱歌");
        }
}
ldh = new Star('刘德华',18);
Star.sex = '男';//创建静态成员
console.log(Star.sex);//通过构造函数本身访问sex      正确
console.log(ldh.sex);//通过实例化对象访问            报错

上述,sex就是静态成员,用实例化对象ldh来访问是错误的
用Star构造函数来访问是错误的

### JavaScript 构造函数成员的术语 在 JavaScript 中,构造函数中的成员可以根据其定义位置访问方式进行分类。以下是这些成员的标准术语及其解释: #### 1. **实例成员** - 实例成员是指在构造函数内部通过 `this` 关键字绑定的属性或方法[^4]。 - 这些成员只能通过由构造函数实例化后的对象来访问。 - 示例代码如下: ```javascript function Person(name) { this.name = name; // 实例成员 } const person = new Person('Alice'); console.log(person.name); // 输出 'Alice' ``` #### 2. **静态成员** - 静态成员是在构造函数本身上直接定义的属性或方法[^4]。 - 它们无法通过实例化的对象访问,而是通过构造函数本身访问。 - 示例代码如下: ```javascript function Person() {} Person.staticMethod = function() { // 静态成员 console.log('This is a static method.'); }; Person.staticMethod(); // 调用静态方法 ``` #### 3. **原型成员** - 原型成员是通过构造函数的 `prototype` 属性添加的方法或属性[^4]。 - 所有的实例都可以共享这些成员,因此它们通常是用来定义公共的行为或功能。 - 示例代码如下: ```javascript function Person() {} Person.prototype.sayHello = function() { // 原型成员 console.log('Hello!'); }; const person = new Person(); person.sayHello(); // 调用原型上的方法 ``` #### 4. **构造器(Constructor)** - 构造器是一个特殊的函数,用于初始化新创建的对象的状态[^3]。 - 在 ES6 类语法中,构造器被显式命名为 `constructor`,而在传统的函数构造器中,整个函数体充当构造器的角色。 --- ### 总结 - **实例成员**:通过 `this` 绑定到实例上的属性或方法。 - **静态成员**:直接附加到构造函数本身的属性或方法。 - **原型成员**:通过构造函数的 `prototype` 对象定义并供所有实例共享的属性或方法。 - **构造器**:负责初始化对象状态的核心逻辑部分。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值