对于javascript来说,它也有类和对象的之说,任何一个function都可以说是类,有类当然也就有构造函数,利用构造函数new出来的自然就是对象了。
类有private和public成员,private成员只能在类的作用域可以访问。对象的成员都是public公共成员,任何函数都可以访问和修改。这说起来都有点儿抽象,下面就来看看实例进而对私有成员变量、公有成员变量、类、对象几个概念进行解释:
function Container(param) {
this.member = param; //public
var secret = 3; //private
function testPrivateMethod() { //private method
alert('private method!');
}
this.objectMethod = function testPublicObjectMethod(){ //public method
alert('this is a public Object method !');
};
}
上面这段代码,我们给出了一个function,这个函数声明了一个私有变量secret、public变量member、私有方法 testPrivateMethod、public方法objectMethod ,在Container 作用域里面,任何函数都可以访问私有变量,secret,但是在Container 外就不能访问了,不信就试试吧!当然如果要直接访问public成员member、和objectMethod 也是不可访问的,但是呢我们可以通过对象来访问,如下:
function testObject(param) {
//alert(member); //member is not defined,直接在外部访问,就算是public变量也是不可见的,必须通过变量来访问
var myContainer = new Container(param);
alert(myContainer.member);
// myContainer.member = 'ccccc'; //通过对象修改public成员变量
// alert(myContainer.member);
myContainer.objectMethod(); //this定义的方法可见,var定义的方法不可见
}
总结:
1、function即时类,可以有private、public成员变量(包括变量和方法);
2、对象是通过类new出来的,对象的成员变量都是类的public成员变量;
3、访问权限而言,在function内,private和public变量可以被任意访问,但是在定义变量的外部,私有变量不能被访问,public成员变量也不能直接被访问,要访问必须通过对象访问。
最后补充下如何添加实例对象的成员,有两种办法:
一、种是利用构造器的this变量来向对象添加成员,这个上面代码已经有就不在演示。
二、利用原型,即对象构造器的prototype来添加公共方法。
Container.prototype.testPrototype = function() {
alert("this is a public method from prototype!");
};
对象能访问的也就是this定义的变量、方法,以及prototype定义的变量和方法
分享到:
相关推荐
本文将详细解释JavaScript中构造函数中公有、私有特权成员以及静态成员的定义和使用方法。 构造函数中的成员可以被分为公有成员和私有成员。公有成员指的是那些可以被对象外部访问的属性和方法,而私有成员则是只能...
闭包是理解JavaScript私有成员的关键概念。闭包允许函数访问并操作其词法作用域内的变量,即使在函数执行完毕后仍然保持对该作用域的引用。在构造器中定义的函数(如`dec`)就形成了闭包,它们可以访问和修改私有...
通过上述介绍,可以看出JavaScript虽然不像传统意义上的面向对象语言那样提供明确的类和对象概念,但它仍然支持面向对象编程的基本思想。利用`function`作为类的定义、`new`操作符创建对象、以及`this`和`prototype`...
为了弥补这一不足,JavaScript允许我们使用类的语法糖,以支持类定义和模拟面向对象编程语言中的成员访问控制,包括私有成员、受保护成员和静态成员。 在JavaScript中,类的定义往往基于构造函数或者使用ES6引入的...
在JavaScript编程语言中,公有、私有、特权和静态成员的使用是面向对象编程范式的一部分。它们各自有不同的作用域和访问方式,为对象的设计和行为提供了多样化的手段。下面,我们将详细分析这些成员的不同特点和使用...
在探讨《JavaScript面向对象编程指南》这一主题时,我们不仅会深入分析面向对象编程(OOP)的基本概念,还会结合JavaScript这种脚本语言的特点,详细阐述如何在实际开发中有效地运用面向对象思想。以下是对该指南核心...
JavaScript是一种基于原型(prototype-based)的面向对象编程语言,与基于静态类(class-based)的语言如Java、C++有很大区别。在JavaScript中,对象可以直接创建,无需预先声明类,而且对象的属性和方法可以在运行时...
在JavaScript中,理解类的公有变量与私有变量的概念对于编写高效、安全的代码至关重要。本文将通过具体的实例来深入探讨这两个概念,并解释它们如何影响对象的行为。 #### 公有变量与私有变量的基本概念 在...
本篇文章将详细讲解基于《javascript设计模式》的学习笔记,特别是关于对象成员的定义,包括公有成员、公有方法、私有成员以及私有方法。 1. 公有成员 在JavaScript中,对象的所有属性和方法默认都是公有的,这...
- **封装性**:通过函数作用域实现私有变量,对外只提供公有接口。 - **多态性**:不同对象可以有相同的名字但实现不同的行为。 - **继承性**:通过原型链实现继承,子类可以继承父类的属性和方法。 ### 实现面向...
JavaScript中的面向对象编程(Object-Oriented ...总结来说,JavaScript的面向对象编程主要依赖函数、原型和实例化来模拟类的概念。通过理解并灵活运用这些机制,开发者可以在JavaScript中构建复杂的面向对象系统。
这篇博文将深入探讨JavaScript中的面向对象特性,包括类的概念、对象的创建、继承机制以及封装。 首先,JavaScript的类并非像Java或C++那样是真正的类,而是语法糖,它提供了更接近于传统类的语法结构,但底层仍然...
在传统的面向对象编程中,私有成员是只能在类的内部访问的成员变量或方法。JavaScript 中没有这样的访问控制,但是我们可以通过定义局部变量和在函数内部定义方法来模拟这种行为。 下面通过一个简单的例子来说明...
在JavaScript面向对象编程中,私有静态变量是一种重要的概念,它允许我们创建只能在类内部访问的变量,而不是让它们成为类的实例的属性。 在JavaScript中,函数自身拥有私有作用域,所以可以使用闭包的特性来实现...
在JavaScript中,面向对象和继承是两个核心概念,用于创建可复用、可维护的代码结构。以下是对这两个概念的详细解释: ### 面向对象 面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它基于对象...
总结一下,这个例子展示了JavaScript中模拟类的常见做法,包括如何定义公有成员、私有成员和特权方法。私有成员通过闭包实现,而特权方法则提供了一种在保持私有性的同时可以从类的外部访问私有成员的方式。通过原型...
在JavaScript面向对象编程中,理解公有属性、私有属性、静态属性以及相应的方法是非常重要的。这些概念有助于我们更好地组织和封装代码,实现更高效的代码复用以及更严格的访问控制。 公有属性和公有方法 公有属性...
本文将深入探讨JavaScript中的继承实现方式以及公有、私有和静态方法的概念。 首先,我们要理解JavaScript中的对象和原型。JavaScript使用原型(prototype)机制来实现继承,这意味着一个对象可以访问其原型对象的...