• ExtJS--学习JavaScript--day02


    day06
    javascript函数
    1.this 关键字总是指向调用者,谁调用函数,this就指向谁
    function test(){
    alert(this.x);
    };
    test.x= 10;
    alert(test.x);

    2.call、 apply 主要应用于框架底层,用于绑定函数的执行环境、作用域
    --var color='red';
    var obj={color:'yellow'};//key--value

    function showColor(){
    alert(x+y+z);
    alert(this.color);//访问的是red
    };
    //call.apply 绑定一个函数,到你指定的作用域执行
    showColor.call(window,10,20,30);//输出60,red
    showColor.call(obj,10,20,30);
    //apply传递的是数组,用[]
    showColor.apply(obj,[10,20,30]);

    3.块的概念:
    ---和高级程序语言不同,js没有块的概念,我们一般用小括号包裹块级作用域
    function test(){
    (function(){
    for(var i=1;i<=5;i++){
    alert(i);
    }
    })();
    alert(i);//报错,没有定义--不用小括号包裹则i输出6
    };
    4.闭包:
    ---执行环境
    ---作用域链
    ---垃圾回收制

    ----闭包实例
    function text(){
    return function(){
    alert('我是闭包...');
    };
    };
    var f=test();
    //alert(typeof f);//返回function类型
    f();//执行调用

    实例二
    test03.jsb
    <input type=button id=btn value="点击" onclick="test();"/>

    test03.js
    var i=0;
    function test(){
    alert(++i);
    };
    闭包实现实例二,不定义全局变量
    var inp=(
    function(){
    var i=0;
    return{
    getCount:function(){
    alert(++i);
    }
    };
    })();

    jsp调用--onclick="inp.getCount();"

    day07
    javascript对象
    1.---json对象(javaScript Object Notation)
    Ext.onReady(function(){
    //var obj=new Object();
    var obj={name:'zhangsan',age:20};//简写
    obj.sex='男';//增加属性
    obj.age=25;//修改属性
    delete obj.name;//删除属性

    //枚举对象内置属性的循环
    for(var attr in obj){
    alert(attr+":"+obj[attr]);
    }
    });

    2.定义一个js类
    var Person=function(name,age){
    this.name=name;
    this.age=age;
    //private私有
    var _sex='男';//js的私有属性
    this.getSex=function(){
    return _sex;
    };
    this.setSex=function(){
    return _sex;
    };
    };
    //实例化一个对象
    var p=new Person('张三',30);
    alert(p.name);

    3.扩展属性
    Person.prototype.id=10;
    Person.prototype.method=function(){
    alert(this.age);
    };
    ----
    //原型对象的构造器总是指向当前对象的模板,原型(prototype)
    Person.prototype={
    constructor:Person,
    id:10,
    method:function(){
    alert('method....');
    }
    };
    var p=new Person('张三',30);
    alert(p.name);
    alert(p.id);
    p.method();

    4.单体
    单体模式
    var SXT={};
    SXT.Array={
    each:function(){
    alert('each...');
    },
    filter:function(){
    alert('filter...');
    }
    };
    SXT.staticMethod=function(){
    alert('我是单体下的静态方法!');
    };
    SXT.Array.each();
    SXT.staticMethod();


    5.闭包单体
    var SXT=(function(){
    var Array={
    each:function(){
    alert('each...');
    }
    };
    return{
    arrayEach:function(){
    Array.each();
    }
    };
    })();
    SXT.arrayEach();

  • 相关阅读:
    redis 持久化
    Hyper-V虚拟机Redhat添加网卡找不到网卡配置文件解决方法
    java 查看ssl log
    iptables配置https防火墙策略
    java 一致性哈希源码 转
    mysql主备配置方法
    hibernate 缓存配置
    Hibernate中文乱码
    HttpPost 中文编码问题 EntityBuilder
    apache 配置tomcat代理
  • 原文地址:https://www.cnblogs.com/fdxjava/p/10694408.html
Copyright © 2020-2023  润新知