javascritp 原型 和 this理解,new

1. 关于原型

原型就是多了一个指针,在使用属性的时候先遍历本级的,再从prototype级别遍历--

    function Person(name, sex) {
        this.name = name;
        this.sex = sex;
    }
    Person.prototype.age = 20;
    var zhang = new Person("ZhangSan", "man");
    console.log(zhang.age); // 20
    // 覆盖prototype中的age属性
    zhang.age = 19;
    console.log(zhang.age); // 19
    delete zhang.age;
    // 在删除实例属性age后,此属性值又从prototype中获取
    console.log(zhang.age); // 20

 zhang.age
20
zhang.age=16
16

zhang.get_age()
16
zhang.__proto__.get_age()
20

 

在函数里面,调用的是谁,this就是谁

函数中,取决于调用的对象

2.关于new

    new 里要有this 分配新的对象,new 其实就是分配了新的对象和改变指针,其他没区别,特别是没有this的

 

3.关于this

   http://www.jb51.net/article/65850.htm

   12种不适宜js 的方法

    http://www.cnblogs.com/beyond-succeed/p/5811525.html

 

4 理解jquery 构造和 extend

    (function(window, undefined) {
        var
                // ...
                jQuery = function(selector, context) {
                    // The jQuery object is actually just the init constructor 'enhanced'
                    // 看这里,实例化方法 jQuery() 实际上是调用了其拓展的原型方法 jQuery.fn.init
                    return new jQuery.fn.init(selector, context, rootjQuery);
                },
                // jQuery.prototype 即是 jQuery 的原型,挂载在上面的方法,即可让所有生成的 jQuery 对象使用
                jQuery.fn = jQuery.prototype = {
               // 实例化化方法,这个方法可以称作 jQuery 对象构造器
                init: function(selector, context, rootjQuery) {
                // this ...
               }
        }

        jQuery.fn.init.prototype = jQuery.fn;

    })(window);


5.  extend 哪个是往 jQuery静态的?

jQuery.fn.extend();

jQuery.extend();

 

posted @ 2017-07-13 15:01  cnchengv  阅读(201)  评论(0)    收藏  举报