继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Jquery中的extend()跟javaScript中prototype心得

面包球_0
关注TA
已关注
手记 1
粉丝 0
获赞 1

先了解一下prototype的使用

function student(){
    this.getName=function(){
        alert("student");
    }
    this.age=18;
    return this;
};
function teacher(){
    this.getSex=function(){
        alert("man");
    }
    this.age=30;
    return this;
};

student.prototype.age=23;
student.prototype = new teacher();//用teacher中的方法跟属性添加到student原型,学生原型中有的就不覆盖,没有的就添加。

if(!student.prototype.getwhere){
    student.prototype.getwhere=function(){
        alert("Hunan");
    }
}
var stu1 = new student();
var tea1 = new teacher();

alert(stu1.age); //18
stu1.getwhere(); //湖南
stu1.getSex(); //man

给类添加原型中未有的属性或者方法是可以的。但是不能覆盖原型中已有的属性跟方法。像上面给学生原型添加了一个取地址方法,又覆盖了学生的年龄,结果输出不是23是18。(注意这些方法属性都是属于对象的)

再看一下JQuery的extend()

var age=6;
var student={
        getName:function(){
            alert("student");
        },
        age:18
};
var teacher={
        getSex:function(){
            alert("man");
        },
        age:30
};
$.extend(student,teacher);
alert(student.age); //30
student.getSex(); //man

发现原型的age被覆盖了。其实extend最实用的还是用在为jquery扩展静态方法,用Jquery.fn.extend()为jquery的实例扩展方法。

其实这些Json对象跟function 构成的类对象。都有很多方法添加属性跟方法,这里只是简单介绍一种方式.

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP