zoukankan      html  css  js  c++  java
  • JavaScript创建对象的方法

    显示在浏览器中的控制台中。

    <script type="text/javascript">
    //这个工厂方法返回一个新的"范围对象"
    function range(from,to){
        //使用inherit()函数来创建对象,这个对象继承自在下面定义的原型对象
        //原型对象作为函数的一个存储,并定义所有“范围对象”所共享的方法(或者叫行为)
        //var r = inherit(range.methods);
        var r = Object.create(range.methods)  //r是一个继承自range.methods的对象
        //存储新的“范围对象”的起始位置和结束位置(状态)
        //这两个属性是不可继承的,每个对象都拥有唯一的属性
        r.from = from;
        r.to = to ;
    
        //返回这个新创建的对象
        return r;
    };
    
    //原型对象定义放法,这些放发为每个范围对想所继承
    range.methods = {
        //如果x在范围内,则返回true,否则返回false
        //这个方法可以比较数字范围,也可以比较字符串和日期范围
        includes: function(x){
                    return this.from < x && this.to > x ;
                },
    
        //对于范围内的每个证书都调用一次f
        //这个方法只有可用作数字范围
        foreach : function(f){
                    for(var x = Math.ceil(this.from); x<this.to; x++)
                        f(x);
                },
        //返回表示这个范围的字符串
        toString : function(){
                        return "("+this.from+"...."+this.to+")";
                },
    };
    
    //这里是使用“范围对象”的一些例子
    var r = range(1,5);
    console.log(r.includes(5));
    r.foreach(console.log);
    console.log(r);
    
    
    //使用构造函数创建一个对象(常用)
    //注意:这里并没有创建并返回一个对象,仅仅是初始化
    function Range( from , to ){
        //存储“范围对象”的起始位置和结束位置(状态)
        //这两个属性是不可继承的,每个对象都拥有唯一的属性
        this.from     = from ;
        this.to     = to;
    }
    
    //所有的“范围对象”都继承自这个对象
    //注意,属性的名字必须是 prototype  ********/
    Range.prototype = {
        //如过x在范围内,则返回true,否则返回false
        //这个方法可以比较数字范围,也可以比较字符串和日期范围
        includes : function(x){
                    return this.from < x && x < this.to;
                },
        //对于范围内的每个证书都调用一次f()
        //这个方法只可用于数字范围
        foreach : function(f){
                    for(var x = Math.ceil(this.from); x<this.to; x++)
                        f(x);
                },
        //返回表示这个范围的字符串
        toString : function(){
                        return "("+this.from+"...."+this.to+")";
                },
    }
    //这里是使用“范围对象”的一些例子
    console.log("使用构造函数创建一个对象(常用):");
    
    var R = new Range(1,5);        //注意这个构造函数用关键字new来调用
    console.log(R.includes(5));
    R.foreach(console.log);
    console.log(R);
    
    
    </script>
  • 相关阅读:
    【转】 史上最详尽的平衡树(splay)讲解与模板(非指针版spaly)
    HihoCoder1325 : 平衡树·Treap(附STL版本)
    HihoCOder1323 : 回文字符串(区间DP)
    从分布式一致性算法到区块链共识机制
    Nacos Committer 张龙:Nacos Sync 的设计原理和规划
    MaxCompute Studio使用心得系列7——作业对比
    阿里云MaxCompute 2019-4月刊
    DDoS攻击新趋势:海量移动设备成为新一代肉鸡
    胡喜:从 BASIC 到 basic ,蚂蚁金服技术要解决两个基本的计算问题
    阿里开发者招聘节 | 面试题14:如何实现两金额数据相加(最多小数点两位)
  • 原文地址:https://www.cnblogs.com/ctsch/p/6914328.html
Copyright © 2011-2022 走看看