测试代码
var person = (function(){
function person(name){
this.name = name;
this.sayHello = function(){
_sayHello.call(this);
}
};
person.prototype ={
sayHello2:function(){
alert(this.name+"\tsayHello2");
}
}
person.sayHello3 = function (){
alert(3);
}
function _sayHello(){
alert(this.name+"\t privat");
};
return person;
}());
var person = (function(){}());
1.person等于一个自运行函数,而自运行函数返回一个对象,该自运行函数是一个闭包,外部声明该对象后只能使用该对象中声明的属性和方法(例如:name属性,sayHello方法;声明的时候必须带上this,否则外部不能使用,相当于私有变量),(构造函数方式)
2._sayHello在闭包内是可用的,外部声明的person对象不可使用,实现了类似于java中的私有方法。
3.sayHello2是对person对象添加的方法,相当于java中的public方法。(原型方式)
4.原型方式和构造函数方式都得通过类的对象进行方法。(var p = new person();通过p访问)
5.sayHello3是类方法,需要用类访问。相当于java中的静态方法。只能通过类名访问
分享到:
相关推荐
JavaScript中的闭包是一种强大的特性,它允许函数访问和操作其外部作用域的变量,即使在其外部函数已经执行完毕后。闭包的实现基于JavaScript的作用域链和垃圾回收机制。 1. **闭包的概念** 闭包是一个拥有自身...
每个JavaScript对象都有一个内部属性`__proto__`,它指向创建该对象的构造函数的原型。当我们尝试访问对象的一个属性时,如果该对象本身没有这个属性,JavaScript会查找`__proto__`链,直到找到该属性或者到达链的...
在JavaScript编程语言中,"this"、闭包(Closure)、原型链(Prototype Chain)和继承是四个核心概念,它们构成了JavaScript面向对象编程的基础。这里,我将深入解析这些概念,并结合实际例子来帮助理解。 首先,让...
当我们创建一个`$.problemWo`的实例`obj`时,它拥有一个指向构造函数原型的内部指针。当`obj.myclick()`被调用时,它能够访问到实例`obj`中的`a`属性,这正是闭包的一个典型应用。这里的关键在于`myclick`方法保留了...
闭包是JavaScript编程中一个非常重要的概念,...由于JavaScript是一种基于原型的语言,并不支持传统的面向对象编程特性,如类和继承,闭包在JavaScript中扮演了更加重要的角色,成为了构造对象和模块化编程的一种手段。
在JavaScript中,构造函数是用于创建和初始化新对象的函数,关联数组是一种以键值对形式存储数据的数据结构,属性则是对象的特征。在编程中,它们的实现方式和使用方法非常重要。本文将详细探讨JavaScript中构造函数...
JavaScript对象可以分为两类:构造函数和原型对象。 构造函数(Constructor)是用来创建对象的函数,它定义了对象的结构和行为。原型对象(Prototype)是对象的原型,它定义了对象的行为和继承关系。 在JavaScript...
JavaScript 的 OOP 特性主要通过构造函数、原型继承和 ES6 类语法实现: - **构造函数**:用于创建新对象,并且可以为这些对象设置初始属性值。 - **原型继承**:通过原型链实现了继承的概念。每个对象都有一个原型...
第八章分为上下两部分,全面探讨面向对象的JavaScript,包括原型继承、构造函数、实例化等面向对象编程的关键概念。 第九章则关注函数式的JavaScript,函数式编程强调通过函数组合和避免副作用来解决问题,...
同时,JavaScript的原型机制是实现继承的主要方式,每个对象都有一个__proto__属性,指向其构造函数的prototype。通过原型链,对象可以继承另一对象的属性和方法。此外,你还将学习到如何使用Object.create、class...
每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象,形成了原型链。通过原型链,可以查找对象上不存在的属性。 4. **函数与高阶函数**:JavaScript的函数是一等公民,可以作为变量赋值、作为参数...
书中会介绍对象字面量、构造函数、原型链、以及如何通过Object.create创建新对象。原型和继承是JavaScript的一大特色,书中会详细解析这些概念,并通过实例演示如何实现面向对象编程。 此外,JavaScript的作用域和...
在JavaScript中,原型继承是通过对象的__proto__属性实现的,每个对象都有一个指向其构造函数原型的链接。这使得对象可以共享属性和方法,实现继承。函数闭包是指函数能够访问并保存其外部作用域的状态,即使在其父...
原型和原型链是理解JavaScript继承的关键,每个对象都有一个proto属性,指向它的构造函数的prototype对象。通过原型链,子对象可以访问父对象的所有属性和方法。ES6引入了类的概念,但其实质仍然是基于原型的继承。 ...
2. **对象和原型**:深入探讨了JavaScript的面向对象特性,包括对象字面量、构造函数、原型链、继承机制等,这是理解JavaScript灵活性的关键。 3. **作用域和闭包**:解析了JavaScript中的变量作用域规则以及闭包的...
- 每个对象都有一个内部属性[[Prototype]],它指向它的构造函数的prototype对象。 3. **异步编程**: - **回调函数**:传统处理异步操作的方式。 - **Promise**:ES6引入的新特性,用于更优雅地处理异步操作。 ...
基于提供的代码示例,我们可以看到一个名为`NormalClass`的构造函数定义,并在其内部定义了两个属性和两个方法。其中,`Method1`是通过直接赋值法定义的,而`Method2`则是通过函数赋值法定义的。 ```javascript ...
掌握原型链的工作方式,以及如何使用构造函数、call()、apply()和bind()实现继承,对于JavaScript面向对象编程至关重要。 五、闭包与作用域 闭包是JavaScript中一种强大的特性,允许函数访问并操作其词法作用域内的...
以上只是JS5的一些基础知识点,完整的JScript5.5中文参考手册提供了更详细的API和语言特性解析,包括错误处理、类型转换、原型链、闭包、作用域等高级概念,对于深入理解和使用JS5非常有帮助。通过阅读手册,开发者...