zoukankan      html  css  js  c++  java
  • JavaScript面向对象编程入门

    来源极客网

     1 function Person() {
     2     var _this = {} //创建一个空的对象,接着我们利用这个"空的对象"承载Person的属性和方法
     3     _this.sayHello = function(){
     4         alert("PHello");
     5     }
     6     return _this; 
     7 }
     8 
     9 function Teacher_1() {
    10     var _this = Person();//注意这里的语法小括号
    11     return _this;
    12 }
    13 
    14 //演示覆写父类中的方法语法
    15 function Teacher_2() {
    16     var _this = Person();
    17     _this.sayHello = function () {
    18         alert("Thello");
    19     }
    20     return _this;
    21 }
    22 //演示子类怎样调用父类的方法
    23 function Teacher() {
    24     var _this = Person();
    25     var surperSay = _this.sayHello;     //1.通过"赋值"的代码思想进行处理
    26     _this.sayHello = function () {
    27         surperSay.call(_this) //2.通过call()方法进行强行调用
    28         alert("Thello");
    29     }
    30     return _this;
    31 }
    32 
    33 //调用我们创建对象Teacher
    34  var t = Teacher();
    35 t.sayHello();//调用到我们在Person中声明的sayHello

    自己随便定义html运行一下上面的代码,感受一下

     1 //演示用一个函数将一个function包裹起来,然后执行它
     2 //第5行增加传参的情况怎样处理
     3 (function(){
     4     var n = "ime";
     5     function Person(name) {
     6         var _this = {} //创建一个空的对象,接着我们利用这个"空的对象"承载Person的属性和方法
     7         _this._name = name;
     8         _this.sayHello = function(){
     9             alert("PHello" + this._name + ":"+ n);
    10         }
    11         return _this; 
    12     }
    13     window.Person = Person; //表示将函数Person"挂"给全家变量,
    14 }());//大括号右边的一对小括号,是必须有的,表示自运行
    15 //演示了
    16 function Teacher(name) {
    17     var _this = Person(name);
    18     var superSay = _this.sayHello;
    19     _this.sayHello = function () {
    20         superSay.call(_this);
    21         alert("Thello" + _this._name);
    22     }
    23     return _this;
    24 }
    25 var t = Teacher("iwen");
    26 t.sayHello();

     例子3

    //字面形式的Javascript面向对象
    var person = {
        name:"James",
        age:30,
        eat:function(){
            alert("能吃")
        }
    }
    //给person添加一个属性
    
    function Person(){
    
    }
    //使用Person的原型链添加属性和方法
    Person.prototye={
        name="James",
        age:30,
        eat:function(){
            alert("我在吃");
        }
    }
    //使用new 使用这个对象
    var p = new Person();//new仅仅是一个关键词,和Java,C#中的new作用完全不同
  • 相关阅读:
    Kafka架构
    MapReduce执行流程解析
    ZooKeeper选举机制
    Zookeeper全局一致性
    HDFS的快照
    在CentOS 6.5上安装NodeJS
    Node v0.12.5 稳定版发布
    CentOS6.5手动升级gcc4.8.2
    centos6 yum 安装 install c++4.8 gcc4.8
    Linux CentOS6系统安装最新版本Node.js环境及相关文件配置
  • 原文地址:https://www.cnblogs.com/zhuji/p/6539548.html
Copyright © 2011-2022 走看看