码迷,mamicode.com
首页 > 其他好文 > 详细

原型和原型链

时间:2018-09-21 16:59:11      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:log   var   原型链   das   原型   .com   https   dcl   addclass   

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

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

            var Fn=function(){}
            //给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);//此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员 
                }
            }

 

原型和原型链

标签:log   var   原型链   das   原型   .com   https   dcl   addclass   

原文地址:https://www.cnblogs.com/pfcan66/p/9687199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!