`
a1520708
  • 浏览: 28271 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js面相对象基础

    博客分类:
  • js
阅读更多
1、对象的定义
      空对象:
     (1) var obj = {};
      (2) var obj = new Object();

var obj = {name:'chen',age:24};//对象,name 和age相当于this.name;this.age 


2、构造函数
var Person = function(){
       this.name = 'chen';//this表示为属性,相比java的public修饰的属性
       this.age = 25;
       var aa = 1; //var 定义的为私有属性,可以通过闭包来获取
       this.say = function(){

           alert(aa);
       } 
   }

对象的constractor 指向 初始化的构造函数,
注意 ,下面会提到,当遇到下面情况时,应重新赋值prototype的constructor
var F = function(){};

F.prototype = Animal.prototype;

Cat.prototype = new F();

Cat.prototype.constructor = Cat;

总之,这是很重要的一点,编程时务必要遵守。下文都遵循这一点,即如果替换了prototype对象

3、数组
var array = []; 或 var array = new Array();
数组为特殊的对象,有特殊属性length, 当属性名为数字或能转换成数字的字符串时
的时候,才会影响到length属性

4、函数
关键字:function;
特殊属性:arguments可取到出来的参数; arguments.callee表示当前所在的方法
通过this关键字来获取调用者的引用,从而获取方法者的各种属性及方法

5、每个对象或方法都有一个prototype属性,指向一个prototype对象,可以用于js的继承
例子:
var Animal = function(){
    this.type = 0; 
    this.say = function(){
        alert(1);
    }
}


var Dog = function(){
    
}

Dog.prototype = new Animal();

alert(new Dog().type);
new Dog().say();


6、方法,函数
当作为一个函数的属性时,叫做这个函数的方法,没有则称作函数或构造函数;
每一个方法都有一个call方法 和 apply方法,可以模拟对象的调用方法
方法.call(对象, 参数,参数,参数....);
方法.apply(对象,[参数,参数,参数....]);

7、函数的作用域
js中无块级别作用域,造成,在一个{}中,任何位置定义的变量,在这里任何位置都可以访问,所以最好在{}的开头就把所有需要的变量定义好
注意: 局部变量只要定义,则全局同名变量则无效
函数的作用域在定义的时候就定义好了


8、闭包
函数内部的函数被函数外部的一个变量引用时,就创建了一个闭包;
函数的引用有效 ---》 函数 则有效 ---》 函数所依赖的作用域也有效,不会被销毁

9、四种调用模式中this的区别
(1)、方法调用模式   this即绑定到该对象上
(2)、函数调用模式   this绑定到全局对象上,解决办法,定义一个变量来保存this
var that = this;
(3)、构造器调用模式
(4)、apply调用模式

10、call方法的实现继承
function Class1() 
{ 
    this.showTxt = function(txt) 
    { 
        alert(txt); 
    } 
} 

function Class2() 
{ 
    Class1.call(this); 
} 

var c2 = new Class2(); 

c2.showTxt("cc"); 

这样 Class2 就继承Class1了,Class1.call(this) 的 意思就是使用 Class1 对象代替this对象,那么 Class2 中不就有Class1 的所有属性和方法了吗,c2 对象就能够直接调用Class1 的方法以及属性了,执行结果就是:alert(“cc”);

对的,就是这样,这就是 javaScript 如何来模拟面向对象中的继承的,还可以实现多重继承。

分享到:
评论

相关推荐

    JS面向对象基础

    JS面向对象基础.

    Javascript面向对象基础

    以下是对"Javascript面向对象基础"的详细解释: 1. **对象和属性**:在JavaScript中,对象是键值对的集合,可以通过花括号{}创建。例如,`let person = {name: "张三", age: 30}`定义了一个包含姓名和年龄属性的...

    JS面向对象的基础大家去看JS面向对象的基础

    JS面向对象的基础 写的很好的,大家去看JS面向对象的基础 JS面向对象的基础 写的很好的,大家去看JS面向对象的基础

    Javascript面向对象基础.rar

    在这个“JavaScript面向对象基础”的资料中,我们将会探讨JavaScript中的类、对象、封装、继承以及多态等关键概念。 1. **对象与对象字面量** 在JavaScript中,对象是由键值对组成的无序集合,可以使用对象字面量...

    JavaScript面向对象基础PPT

    JavaScript面向对象基础PPT,讲述了何谓面向对象、面向对象特点、组成及写法、工厂模式、原型以及如何将普通面向过程的代码转换为面向对象的基本原则

    《JavaScript内核系列》和《JavaScript面向对象基础》

    《JavaScript内核系列》和《JavaScript面向对象基础》这两本书是深入理解JavaScript编程的重要资源。JavaScript,作为一种广泛应用于Web开发的脚本语言,其内核和面向对象特性是开发者必须掌握的基础知识。以下是对...

    JavaScript面向对象基础.pdf

    ### JavaScript面向对象基础知识点 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming,简称 OOP)是一种编程范式,它通过模拟现实世界中的对象及其交互来组织软件架构。JavaScript 虽然是...

    javascript 面向对象基础

    在本文中,我们将深入探讨 JavaScript 的面向对象基础,主要包括类的定义、实例化以及对象属性和方法的引用。 首先,让我们了解如何在 JavaScript 中定义一个类。在 JavaScript 中,类通常通过函数来实现。例如,...

    JavaScript面向对象基础.ppt

    面向对象编程的基础包括类、对象、继承和多态等概念。类是对象的模板或蓝图,定义了一组属性(数据成员)和方法(函数)。对象则是类的实例,具备类所定义的属性和行为。JavaScript虽然没有传统的类定义,但可以通过...

    js 面向对象实例

    在JavaScript面向对象的上下文中,我们可以创建专门处理Canvas绘图的类,封装复杂的绘图逻辑: ```javascript class Circle { constructor(x, y, radius) { this.x = x; this.y = y; this.radius = radius; } ...

    JavaScript面向对象编程指南.pdf

    JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在... 《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库

    JavaScript面向对象编程指南

    《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码...

    面向对象JavaScript精要(英文原版pdf)

    本书全面覆盖了面向对象编程的基础理论,并结合JavaScript的具体实现进行讲解。 - **第一章:JavaScript简介**:介绍JavaScript的发展历程、特点及其与Web浏览器的关系。 - **第二章:面向对象编程简介**:解释OOP...

    JAVASCRIPT 面向对象编程精要

    本文介绍了JavaScript面向对象编程的基本概念和技术细节,包括变量和对象的基础用法、函数的作用以及如何通过封装和继承来构建复杂的对象层次结构。JavaScript的独特之处在于它的灵活性和动态性,这使得它成为了一种...

    javascript面向对象编程.pdf

    编写良好的面向对象基础代码之后,建立一个强大的代码测试环境是必要的。这有助于发现和修复代码中的缺陷,提高软件的稳定性和可靠性。在本书中,作者将介绍不同的测试工具,包括调试工具如Firefox的Firebug插件,它...

    js实现面向对象基础代码

    如果你读过extjs的原代码,一定知道它是基于面向对象思想代码。该代码不同于extjs,更加合理且容易理解。

Global site tag (gtag.js) - Google Analytics