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
原文地址:https://www.cnblogs.com/littlebirdlbw/p/5662611.html