`
daxiaoli123
  • 浏览: 46702 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

js的对象(oop)

阅读更多
jquery是一种封装js的技术,能用简洁的代码来完成完美的效果。
下面我来学习下jsoop来打下坚实的基础
1./**
* 定义函数的方式定义类
*/

function persion() {
    // 类成员的定义与构造函数
    this.age = 123;
}


// 实例化persion对象
var p = new persion();


//获取属性的两种方式
// alert(p["age"]); 这个主要是调用属性的方法
// alert(p.age);
2.

// 动态添加,修改,删除对象的属性和方法
// 添加属性
p.sex = "male";
//alert(p.sex);


// 添加方法
p.getSex = function() {
    return this.sex;
};
//alert(p.getSex());
// 修改属性
p.sex = "female";
// alert(p.sex);


// 删除属性
p.sex = undefined;
//alert(p.sex);


// 删除方法
p.getSex = undefined;
//alert(p.getSex());


// ---------------------------------------------------



3./**
* 使用{}的语法创建无类型对象
*/
// 定义一个空对象
var obj = {};


var man = {


    name : "fy",// 定义了name属性,初始化为fy


    favoriteColor : ['black', 'red', 'green'],


    sayHello : function() {// 定义了方法sayHello
        alert("hello world!!");
    }
};
//调用man中的sayHello方法
man.sayHello();

//我的理解是{}可以创建一个类似java的类,在里面可以定义  属性 EX:name,  函数 sayHello:function(){}


4.
/**
* protoType原型对象
*/


//定义一个空对象
function woman(){
//this is empty


//对类的prototype对象进行修改,增加方法getSex();
woman.prototype.getSex = function(){
    alert("I'm a woman");
};

对这个空的方法进行修改  方式是 woman.prototype.getSex=function(){};
//实例化woman类
var w = new woman();//得到一个object实例化对象 通过这个对象可以调用方法和属性 
//w.getSex();


// ---------------------------------------------------



5./**
* 实现类的私有成员
*/
function boy(){
    var pp = "peope are private萧黎私有";//私有属性成员pp
    //定义一个名字为pm的函数 我觉得那个var就是相当与java中的private
    function pm(){//私有方法成员pm
        alert(pp);
    }
    this.getPp = function(){//通过this. 你将会将私有的变成公有的
        //在公有成员中改变私有属性的值
        pp = "peope are private???公有的";
        alert(pp);
    },
    //这样是定义一个共有的,但是和私有的不冲突。
    this.getPm = function(){
        //在公有属性中调用私有方法
        pm();
    };
}
每次都是通过实例化后得到object对象后才能调用其方法和属性
//实例化boy类
var boy = new boy();
// boy.getPm();
// boy.getPp();
//boy.getPm();


/**
6. * 实现静态成员(属性和方法)
*/


function girl(){
}


//静态属性 与以往添加属性不同的是,这是通过函数.属性=“”;
//他的好处相对与java而言属性和方法并不需要事先声明和定义。
girl.Property = "我是静态属性class level";


//静态方法
girl.staticMethod = function(){
     alert("static method!!!");
};


//调用静态属性与方法
//alert(girl.Property);因为这个属性是静态的所以不需要得到对象才可以调用我们可以直接的调用
// girl.staticMethod(); //同上



7./**
* 利用反射机制和prototype实现继承
*/
function father11(){


}
father1.prototype = {
     method1:function(){
     alert(1);
     },
     method2:function(){
     alert(2);
     }
};


function child11(){
   alert(child1);
}


//让child1继承father1
for(var p in father11.prototype){
     //alert(p);
     child11.prototype[p] = father11.prototype[p];
}
//覆盖定义father1中的method1方法
child11.prototype.method1 = function(){
     alert(11);
};
//创建两个类的实例
var f1 = new father11();
var c1 = new child11();
//分别调用两个类的method1方法
f1.method1();
c1.method1();

// ---------------------------------------------------

8

// ---------------------------------------------------
/**
* 简化版的利用反射机制和prototype实现继承
*/
function father2(){


}


//为类添加静态方法inherit表示继承与某类
//继承1
// Function.prototype.inherit = function(baseClass){
//     for(var p in baseClass){
//         this.prototype[p] = baseClass.prototype[p];
//     }
// };
//继承2
Function.prototype.extend = function(baseClass){
         for(var p in baseClass){
             this.prototype[p] = baseClass.prototype[p];
         }
     };


father2.prototype = {


     method1:function(){
     alert(father21);
     },
     method2:function(){
     alert(father22);
     }
};


function child2(){
}
//继承3
//让child2继承father2
// for(var p in father2.prototype){
//
//     child2.prototype[p] = father2.prototype[p];
// }\
//child2.inherit(father2);
child2.extend(father2);


//覆盖定义father1中的method1方法
child2.prototype.method = function(){
     alert(11);
};


//创建两个类的实例
var f2 = new father2();
var c2 = new child2();
//分别调用两个类的method1方法
f2.method1();
c2.method();
























分享到:
评论

相关推荐

    JavaScript与OOP js面向对象教程.ppt

    JavaScript与OOP js面向对象教程.ppt

    javascript oop模式讲解

    JavaScript OOP(面向对象编程)模式是编程领域中一种重要的设计思想,它允许开发者通过类和对象来组织和管理代码,提高代码的可重用性和可维护性。在这个讲解中,我们将深入探讨JavaScript中的OOP模式,特别是如何...

    jquery_js_oop

    《jQuery JS OOP:深入理解JavaScript面向对象编程》 在JavaScript的世界里,面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它允许我们以类和对象的方式来组织代码,提高代码的复用...

    JavaScript与OOP讲座

    然而,JavaScript不仅仅是一门简单的脚本语言,它同样支持面向对象编程(Object-Oriented Programming,简称OOP)的概念,这使得它能够构建复杂且可维护的应用程序。 面向对象编程是软件开发中的一个关键概念,通过...

    js-oop.rar_control

    **JavaScript面向对象编程(JS OOP)** JavaScript 面向对象编程(Object-Oriented Programming,简称 OOP)是 JavaScript 语言中的一个重要概念,它允许开发者创建复杂、可复用的代码结构。在 "js-oop.rar_control...

    Javascript(OOP).rar_javascript_javascript O_oop javascript

    每个JavaScript对象都有一个内部`[[Prototype]]`链接到另一个对象,通常可以通过`__proto__`或`Object.getPrototypeOf()`访问。通过原型,子对象可以继承父对象的属性和方法。例如: ```javascript var person = ...

    js 面向对象实例

    每个JavaScript对象都有一个`__proto__`属性,指向创建该对象的构造函数的原型。原型对象也是一个对象,可以通过`prototype`属性来访问。我们可以在原型上定义方法,这样所有实例都可以访问这些方法: ```...

    JavaScript面向对象(OOP)语法.doc

    5. 原型和原型链:JavaScript对象有一个特殊的`__proto__`属性,指向其构造函数的原型。通过原型,对象可以访问构造函数原型上的方法。`prototype`属性用于添加共享方法到所有实例。 6. 构造器和`new`关键字:构造...

    Javascript的OOP编程

    JavaScript的面向对象编程(Object-Oriented Programming, OOP)是一种强大的编程范式,它允许开发者创建复杂的结构和数据模型,提高代码的可维护性和复用性。在JavaScript中,OOP主要通过构造函数、原型链、封装、...

    jsoop:Javascript 面向对象编程库

    "JSoop"库的出现就是为了弥补JavaScript在面向对象编程(OOP)方面的不足,使开发者能够更方便地构建复杂的OOP结构。 JSoop库提供了类、继承、封装、多态等核心的面向对象特性,使得JavaScript开发者可以按照传统...

    Javascript OOP之面向对象

    浅拷贝(shallow copy)在JavaScript对象操作中是一种常见的技术,它通过复制对象的第一层属性来创建一个新对象,但仅限于基本类型数据。引用类型的属性值,如对象、数组等,仍然通过地址进行引用。因此,如果浅拷贝...

    Javascript面向对象编程.

    面向对象编程(Object-Oriented Programming,OOP)是编程的一种重要范式,JavaScript也完全支持这一特性,尽管它并非一种传统的静态类型语言。这篇博客文章可能详细讨论了如何在JavaScript中实现面向对象编程。 在...

    JavaScript与OOP

    2. **原型链**:每个JavaScript对象都有一个`__proto__`属性,指向它的构造函数的原型。这形成了一个链接的原型链,使得子类能够访问父类的属性和方法。 3. **闭包与模块模式**:通过闭包,可以在函数内部创建私有...

    oop与javascript

    ### OOP与JavaScript详解 #### 一、面向对象编程(OOP)基础概念 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它通过“对象”这一概念来组织程序结构,使得程序更加模块化、易于理解和维护。...

    Javascript oop设计模式 面向对象编程简单实例介绍

    JavaScript中的面向对象编程(OOP)是一种强大的编程范式,它允许我们以更接近现实世界的方式来组织代码。在JavaScript中,我们通常通过构造函数、原型和封装等概念来实现OOP。 首先,让我们看下传统的JavaScript...

    javascript与OOP__PPT

    在JavaScript中,面向对象编程(OOP)是一种重要的编程范式,它允许开发者创建具有封装性、继承性和多态性的复杂结构。本PPT主要介绍了JavaScript中的OOP概念,包括Function对象的apply方法、自定义对象、封装、继承...

    javascript的oop

    JavaScript的面向对象编程(OOP)是Web开发中不可或缺的一部分,它允许我们通过类和对象来组织和管理代码,提高代码的复用性和可维护性。这篇博客文章(链接已提供)深入探讨了JavaScript中的OOP概念,我们将在这里...

    javascript的oop思想以及单例,工厂,观察者模式简例

    JavaScript是一种动态类型的脚本语言,广泛应用于Web开发,它的面向对象编程(OOP)思想是其强大功能的重要组成部分。在JavaScript中,OOP主要通过构造函数、原型链和闭包来实现。本篇文章将深入探讨JavaScript的OOP...

    JavaScript学习深入—面向对象编程

    - **原型链**:每个JavaScript对象都有一个原型对象,这个原型对象也有一个原型,以此类推,形成一个链状结构。当试图访问一个对象的属性时,JavaScript引擎会沿着这个原型链查找,直到找到该属性为止。 ```...

    javascript与oop

    javascript 是一门面向对象的语言,这里共享处理希望大家看后对大家有帮助

Global site tag (gtag.js) - Google Analytics