js面向对象之公有属性和方法、私有属性和方法、静态方法、实例方法

9 篇文章 1 订阅

公有属性和方法,私有属性和方法,静态方法,实例方法

什么是公有属性和公有方法

属于这个类的所有对象都可以访问到的属性叫做公有属性,都可以访问到的方法叫做公有方法。

不论是公有方法还是公有属性都是一个类型下所有实例对象都有的东西。

ES5:

function Student(sname,sage){
    this.sname=sname;						// 公有属性
  	this.sage=sage;							// 公有属性
}
Student.prototype.intr=function(){			// 公有方法
        console.log(`I'm ${this.sname}, I'm ${this.sage}`)
}

var lilei=new Student("Li Lei",21);
console.log(lilei.intr())	//  I'm Li Lei, I'm 21

ES6:

class Student {
    constructor (sname,sage) {
        this.sname=sname;						// 公有属性
  		this.sage=sage;							// 公有属性
    }
    intr () {  									// 公有方法
        console.log(`I'm ${this.sname}, I'm ${this.sage}`);
    }
}

var lilei=new Student("Li Lei",21);
console.log(lilei.intr())	//  I'm Li Lei, I'm 21

什么是私有属性和私有方法

只能在类的内部访问的属性叫做私有属性,只能在类的内部访问的方法叫做私有方法。

ES5:

function Student(sname,sage){
    var sname=sname;						// 私有属性
  	var sage=sage;							// 私有属性
    function intr(){			 	   		// 私有方法
        console.log(`I'm ${this.sname}, I'm ${this.sage}`)
	}
    console.log(sage);   //21
}
var lilei=new Student("Li Lei",21);

ES6:

class Student {
    constructor (sname,sage) {
        let lname=sname;						// 私有属性
  		let lage=sage;							// 私有属性
        function intr () {  					// 私有方法
        	console.log(`I'm ${lname}, I'm ${lage}`);
    	}
        intr();   // I'm Li Lei, I'm 21
    }
}
let lilei=new Student("Li Lei",21);

什么静态方法

不需要实例化创建子对象,就可用类型名直接调用的方法叫做静态方法。

比如ES5中的isArray()方法,它的用法是检测任意一个对象是不是数组。

这个方法的主语可能是任意的类型,所以这个方法就不应该放在某一种类型的原型对象中,也不应该直接放在全局,会被随意的更改。正确的做法是把它放在相关联的一个类型的内部,使用的时候先找到类型然后类型.isArray()调用。

实际上静态方法,本质上,就是放在类型的构造函数中的方法。

class Array {
    constructor (sname,sage) {
        ...
    }
    static isArray(obj){  					//静态方法
		...
  	}
}

什么是实例方法

必须用子对象.方法()方式调用的方法,都是实例方法。

因为.前的子对象,也称为该类型的一个实例(instance)。

var str="hello";  
str.toUpperCase()   
var arr=[1,2,3,4,5];   
arr.sort()

注:必须用这个类型的子对象才能调用

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
Python中的私有属性是指以双下划线开头的属性,例如`__a`。私有属性只能在的内部访问,无法从的外部或派生中直接访问。只有通过内部的方法来间接访问私有属性才是合法的。例如,在A的内部使用`self.__a`可以访问私有属性,而在的外部使用`obj.__a`会引发错误。 相反,公有属性是指没有使用双下划线开头的属性,可以在的内部、外部以及派生中直接访问。在的外部可以使用对象名或者派生实例名来访问公有属性。例如,在A中定义的属性`self.eye`、`self.forehead`和`self.nose`可以直接在的内部以及派生中访问。 总结来说,私有属性只能在的内部通过方法间接访问,而公有属性可以在的内部、外部以及派生中直接访问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python之面向对象的成员](https://blog.csdn.net/aflqh04282/article/details/101523606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python 笔记(19)— 属性私有属性公有属性实例属性、局部变量)、方法实例方法静态方法)、...](https://blog.csdn.net/wohu1104/article/details/89424370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉沦与遐想。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值