手机版

Javascript范围说明

时间:2021-11-25 来源:互联网 编辑:宝哥软件园 浏览:

公共、受保护和私有范围在传统的面向对象编程中,公共和私有范围是主要关注的。公共范围内的对象属性可以从对象外部访问,也就是说,在开发人员创建对象的实例后,他可以使用其公共属性。但是,私有范围内的属性只能在对象内部访问,也就是说,对于外部世界,这些属性是不存在的。这也意味着,如果一个类定义了私有属性和方法,它的子类就不能访问这些属性和方法。最近又流行了一个范围,就是保护范围。虽然保护范围的应用规则在不同的语言中有所不同,一般来说,它是用来定义私有属性和方法的,但是这些属性和方法也可以被它的子类访问。在ECMAScript中讨论这些作用域几乎没有意义,因为ECMAScript中只有一个共同的作用域——。ECMAScript中所有对象的所有属性和方法都是通用的。因此,在定义自己的类和对象时,必须非常小心。请记住,默认情况下,所有属性和方法都是公共的。很多开发人员在网上提出了有效的属性范围模式,解决了ECMAScript的这个问题。由于缺乏私有范围,开发人员制定了一个惯例来解释哪些属性和方法应该被视为私有。这个惯例规定属性名应该在前后加下划线。例如:

在这段代码中,属性颜色是私有的。请记住,这些下划线不会改变这些属性是公共的事实,它们只是告诉其他开发人员它们应该被视为私有的。一些开发人员也喜欢使用单下划线来描述私有成员,例如obj。_颜色。静态范围不是静态的。静态范围定义的属性和方法可以随时从同一个位置访问。在Java中,一个类可以有静态属性和方法,可以在不实例化该类的对象的情况下访问它们。例如,java.net.URLEncoder类,其函数encode()是一个静态方法。严格来说,ECMAScript没有静态范围。但是,它可以为构造函数提供属性和方法。记住,构造函数只是函数。函数是对象,可以有属性和方法。例如:

这里,方法alternate()实际上是函数sayHi的方法。您可以像调用常规函数一样调用sayHi()输出“Hi”,也可以调用sayHi.alternate()输出“hola”。即便如此,alternate()是sayHi()公共范围内的方法,而不是静态方法。

版权声明:Javascript范围说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。