zoukankan      html  css  js  c++  java
  • 原型和原型链

    1:参照此文理解js的静态方法与实例方法 https://www.cnblogs.com/faithZZZ/p/7045323.html

    以下是我结合jquery设计的原理的一些理解

               var Fn=function(){
              //【注意】用this定义出来的属性和方法是在prototype里的
             this.a=10;
             this.add=function(){
                 console.log('add');
             }
           }
                //给Fn添加静态属性和方法,这些静态属性和方法只有Fn才能引用到
                //jquery的$就是一个类似Fn的方法,$.trim()就是$的一个静态方法。
                Fn.age=18;
                Fn.trim=function(){
                    console.log('trim');
                }
                console.log(Fn.trim);
                //给Fn添加实例属性和方法,这些实例的属性和方法只有实例出来的对象(new出来的对象)才有
                //jquery中的addClass也是这样添加的,$('span') 调用$方法,传参'span'会返回一个实例对象出来
                Fn.prototype.name='penny';
                Fn.prototype.addClass=function(){
                    console.log('addClass');
                }
                var f1=new Fn();
                console.log(f1.addClass);    

    2:原型链,hasOwnProperty                https://blog.csdn.net/SalmonellaVaccine/article/details/52456066   

    hasOwnProperty与isPrototypeOf        https://www.cnblogs.com/jenry/archive/2010/12/08/1900150.html

            var Foo=function(){}
                var f1=new Foo();
                f1.a=10;
                Foo.prototype.a=100;
                Foo.prototype.b=200;
                console.log(f1.a);//10
                console.log(f1.b);//200
                //以上代码中,f1是Foo函数new出来的对象,f1.a是f1对象的基本属性,f1.b是怎么来的呢?
                //——从Foo.prototype得来,因为f1.__proto__指向的是Foo.prototype
                //访问一个对象的属性时,先在基本属性中查找,如果没有,再沿着__proto__这条链向上找,这就是原型链。
    
                //那么我们在实际应用中如何区分一个属性到底是基本的还是从原型中找到的呢?
                //hasOwnProperty,特别是在for…in…循环中,一定要注意。
                for(var item in f1){
                    if(f1.hasOwnProperty(item)){//这里只输出了a,hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象
                        console.log(item);//此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员 
                    }
                }
  • 相关阅读:
    Python文件相关的操作
    Python运算符
    字符串方法
    Python列表的增删改查和元祖
    压测
    jmeter相关使用
    charles的使用
    接口测试
    编程珠玑之关键字(1)--《c语言深度剖析》整理(转)
    循环单链表操作(转)
  • 原文地址:https://www.cnblogs.com/pfcan66/p/9687199.html
Copyright © 2011-2022 走看看