zoukankan      html  css  js  c++  java
  • Javascript面对对象. 第三篇

    3.字面量

    为了让属性和方法很好的体现封装的效果,并且减少不必要的输入原型的创建可以使用字面量.

     function Box(){}
        //使用字面量的方法创建原型对象,这里的{}就是对象,是Object,new Object就是相当于{}
        Box.prototype={
            name:'link',
            age:23,
            run:function(){
                return this.name+this.age+'运行中。。。'
            }
        };
        var box=new Box();
        alert(box.run());
    

     使用构造函数创建原型对象和使用字面量创建对象在使用上基本相同,但是还是有一些区别,

    字面量创建的方式使用constructor属性不会指向实例,而会指向OBject,构造创建的方式则相反。

    字面量创建对象

    function Box(){}
        //使用字面量的方法创建原型对象,这里的{}就是对象,是Object,new Object就是相当于{}
        Box.prototype={
            name:'link',
            age:23,
            run:function(){
                return this.name+this.age+'运行中。。。'
            }
        };
        var box=new Box();
        alert(box.run());
        alert(box.constructor)   //就是Object方法,因为{}就是对象,是Object,new Object就是相当于{}
    

     构造函数创建原型对象

     function Box(){}  //构造函数函数体里面就是什么都没有,这里如果有,就叫实例属性,实例方法。
       
       Box.prototype.name='link';
       Box.prototype.age='23';
       Box.prototype.run=function(){
           return this.name+this.age+"运行中。。。"
       }
       var box=new Box();
       alert(box.constructor);//就是Box方法。
    

     如果字面量想Object转换Box可以用

    function Box(){}
        //使用字面量的方法创建原型对象,这里的{}就是对象,是Object,new Object就是相当于{}
        Box.prototype={
            constructor:Box,  //直接强制指向Box
            name:'link',
            age:23,
            run:function(){
                return this.name+this.age+'运行中。。。'
            }
        };
        var box=new Box();
        alert(box.run());
        alert(box.constructor)   //就是Box方法。
    

     原型对象不仅仅可以在自定义对象的情况下使用,而ECMAScript内置的引用类型都可以使用这种方式,并且内置的引用类型本身也使用了原型。

    //数组排序
        var lis=[1,2,15,5,55,33,0]
        alert(lis.sort())
        
        //查看sort是不是Array原型对象里的方法
        alert(Array.prototype.sort)
        alert(String.prototype.substring)
        
        //添加新方法
        String.prototype.addString=function(){
            return this+'新方法';
        }
        var box='link'
        //输出link新方法
        document.write(box.addString())
    

     PS:尽管给原生的内置引用类型添加方法使用起来很方便,但是我们不推荐使用这种分,因为它可能会导致命名冲突,不利于代码的维护性.

  • 相关阅读:
    Monkey稳定性测试实战之Monkey对APP随机测试
    自动化测试用例选型及手工对比自动化测试优缺点
    自动化测试如何解决验证码的问题
    Selenium家谱
    Python基础入门-数据类型
    with open
    Python开源机器学习框架:Scikit-learn六大功能,安装和运行Scikit-learn
    Python的可视化包 – Matplotlib 2D图表(点图和线图,.柱状或饼状类型的图),3D图表(曲面图,散点图和柱状图)
    python -- numpy 基本数据类型,算术运算,组合,分割 函数
    python pandas ---Series,DataFrame 创建方法,操作运算操作(赋值,sort,get,del,pop,insert,+,-,*,/)
  • 原文地址:https://www.cnblogs.com/linkhtml/p/5664349.html
Copyright © 2011-2022 走看看