• JS中的对象


    1、函数:工具,对象:工具包;框架:多个对象;

    2、JSON协议是国际标准规定的一种书写方式(协议、标准),JSON对象就是对象字面量;(恰好协议和对象的格式相同)

    3、JS里面的对象和其他语言不太一样,它通过两个对象(构造函数对象和原型对象)来完成定义对象的功能;

     1     <script>
     2         function Product(){
     3             //构造函数属性
     4             this.name= "";
     5             //构造函数方法
     6             this.test = function(){
     7 
     8             }
     9         }
    10 
    11         Product.prototype={
    12             //原型对象属性
    13             Price:1000,
    14             //原型对象方法
    15             Buy:function(){
    16 
    17             }
    18         }
    19     </script>
    View Code

     

    4、任何对象都包含一个隐藏的属性__proto__,其指向构造函数的原型对象,原型对象中的constructor指向构造函数;

     

    5、面向对象好处:分类管理、封装性,模块化、方便寻找错误、代码修改方便,扩展容易、面向未来编程;

     

    6、检测对象数据类型:toString.call(obj);判断一个变量是不是对象非常简单。值类型的类型判断用typeof,引用类型的类型判断用instanceof;

     

    7、JS中new一个实例干了三件事:创建一个空对象、拷贝构造函数中的方法属性到空对象中、自动生成一个属性__proto__指向构造函数的原型(p.__proto__ === Product.prototype);

    8、将伪数组转换成真数组:比如Array.prototype.slice.call(arguments);

    9、apply的巧妙用法:广泛应用于可变参数的函数调用,比如Array.prototype.push(arr1,arr2);

    10、对象属性搜索机制:首先在构造函数中寻找属性(方法),如果没找到,找到该对象的__proto__指向的对象,继续寻找属性(方法),如此无限循环,直到__proto__为null;

    11、面向对象:就是提炼属性方法,JS跟后台语言机制不太一样,JS是通过原型链来实现属性搜索机制;

    12、继承的作用:减少重复的代码、开放封闭原则;

        <script type="text/javascript">
            function Base(){}
            Base.prototype = {}
    
            function Product(){
                Base.call(this,arguments);
                this.name = "";
                this.desc = "";
            }
            Product.prototype= new Base();//修改Product的原型链
        </script>
    View Code
  • 相关阅读:
    ACM学习历程—HDU5410 CRB and His Birthday(动态规划)
    ACM学习历程—HDU1028 Ignatius and the Princess III(递推 || 母函数)
    ACM学习历程—HDU5396 Expression(递推 && 计数)
    ACM学习历程—HDU 5317 RGCDQ (数论)
    ACM学习历程—HDU 5326 Work(树形递推)
    ACM学习历程—SNNUOJ 1110 传输网络((并查集 && 离线) || (线段树 && 时间戳))(2015陕西省大学生程序设计竞赛D题)
    jquery开发js插件
    requireJS
    java进阶之-Maven,svn,git,maven合拼多个项目
    java 项目中每个jar包的作用总结
  • 原文地址:https://www.cnblogs.com/littlebirdlbw/p/5662611.html
Copyright © 2020-2023  润新知