前端第十四天

四种创建方式

单体创建对象:

var Tom = {

// 属性

name:'tom',

age:18,

// 方法

showName:function(){

alert(this.name);

},

showAge:function(){

alert(this.age);

}

}

//调用属性

alert(Tom.name);

alert(Tom.age);

//调用方法

Tom.showName();

工厂模式创建对象:

function Person(name,age,job){

//创建一个空对象

// var o = new Object();//方式一

var o = {};//方式二

o.name = name;

o.age = age;

o.job = job;

o.showName = function(){

alert(this.name);

}

o.showAge = function(){

alert(this.age);

}

o.showJob = function(){

alert(this.job);

}

return o;

}

var Tom = Person('tom',18,'程序猿');

Tom.showJob();

var Jack = Person('jack',19,'攻城狮');

Jack.showJob();

构造函数:

function Person(name,age,job){

this.name = name;

this.age = age;

this.job = job;

this.showName = function(){

alert(this.name);

}

this.showAge = function(){

alert(this.age);

}

this.showJob = function(){

alert(this.job);

}

}

//new的作用就相当于工厂模式中最开始创建了一个空对象,最后把对象返回

var Bob = new Person('bob',18,'产品汪');

Bob.showJob();

var Alex = new Person('alex',19,'运营喵');

Alex.showJob();

alert(Bob.showName == Alex.showName);//false

原型模式:

function Person(name,age,job){

this.name = name;

this.age = age;

this.job = job;

Person.prototype.showName = function(){

alert(this.name);

}

Person.prototype.showAge = function(){

alert(this.age);

}

Person.prototype.showJob = function(){

alert(this.job);

}

}

//先去自己的对象中找showName函数,再去构造函数的原型找

var Lucy = new Person('lucy',18,'测试鼠');

//重写自身对象中的方法,不会影响其它对象

Lucy.showName = function(){

alert('我的名字是' + this.name);

}

Lucy.showName();//我的名字是lucy

var Lily = new Person('lily',19,'市场鸡');

Lily.showName();//lily

alert(Lucy.showName == Lily.showName);//false

call和apply的区别:

二者都可以改变当前的this,区别在于apply方法要将参数放入数组中再传参

function aa(a,b){

alert('我的this是' + this + ',我的a是' + a + ',我的b是' + b);

}

//我的this是[object Window],我的a是2,我的b是3

// aa(2,3);

//我的this是abc,我的a是2,我的b是3

// aa.call('abc',2,3);

//我的this是abc,我的a是2,我的b是3

aa.apply('abc', [2,3]);

函数的继承:

//父类

function Fclass(name, age){

this.name = name;

this.age = age;

}

Fclass.prototype.showName = function(){

alert(this.name);

}

Fclass.prototype.showAge = function(){

alert(this.age);

}

//子类

function Sclass(name, age, job){

//属性用call或者apply的方式来继承

Fclass.call(this, name, age);

this.job = job;

}

//方法继承:将父类的一个实例赋值给子类的原型属性

Sclass.prototype = new Fclass();

Sclass.prototype.showJob = function(){

alert(this.job);

}

//由于已经继承了父类的属性和方法,所以可以直接调用

var Driver = new Sclass('tom',18,'老司机');

Driver.showName();

Driver.showAge();

Driver.showJob();

jquery介绍

jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。

jQuery的版本分为1.x系列和2.x、3.x系列,1.x系列兼容低版本的浏览器,2.x、3.x系列放弃支持低版本浏览器,目前使用最多的是1.x系列的。

jquery是一个函数库,一个js文件,页面用script标签引入这个js文件就可以使用。

jQuery加载

$(function(){

var $div = $('#div');//CSS样式怎么写,这里就怎么写

//html()方法相当于原生JS的innerHTML

alert($div.html() + 'jQuery');

})

jquery选择器

jquery选择器可以快速地选择元素,选择规则和css样式相同,使用length属性判断是否选择成功。

$(document) //选择整个文档对象

$('li') //选择所有的li元素

$('#myId') //选择id为myId的网页元素

$('.myClass') // 选择class为myClass的元素

$('input[name=first]') // 选择name属性等于first的input元素

$('#ul1 li span') //选择id为为ul1元素下的所有li下的span元素

对选择集进行修饰过滤(类似CSS伪类)

$('#ul1 li:first') //选择id为ul1元素下的第一个li

$('#ul1 li:odd') //选择id为ul1元素下的li的奇数行

$('#ul1 li:eq(2)') //选择id为ul1元素下的第3个li

$('#ul1 li:gt(2)') // 选择id为ul1元素下的前三个之后的li

$('#myForm :input') // 选择表单中的input元素

$('div:visible') //选择可见的div元素

对选择集进行函数过滤

$('div').has('p'); // 选择包含p元素的div元素

$('div').not('.myClass'); //选择class不等于myClass的div元素

$('div').filter('.myClass'); //选择class等于myClass的div元素

$('div').first(); //选择第1个div元素

$('div').eq(5); //选择第6个div元素

选择集转移

$('div').prev('p'); //选择div元素前面的第一个p元素

$('div').prevAll('p'); //选择div元素前面所有的p元素

$('div').next('p'); //选择div元素后面的第一个p元素

$('div').nextAll('p'); //选择div元素后面所有的p元素

$('div').closest('form'); //选择离div最近的那个form父元素

$('div').parent(); //选择div的父元素

$('div').children(); //选择div的所有子元素

$('div').siblings(); //选择div的同级元素

$('div').find('.myClass'); //选择div内的class等于myClass的元素

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 面向对象 面向过程与面向对象编程 1、面向过程:所有的工作都是现写现用。 2、面向对象:是一种编程思想,许多功能事...
    关若飞阅读 328评论 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,827评论 1 45
  • 面向过程与面向对象编程 1、面向过程:所有的工作都是现写现用。 2、面向对象:是一种编程思想,许多功能事先已经编写...
    々_18C阅读 390评论 0 0
  • 内置对象 document document.referrer //获取上一个跳转页面的地址(需要服务器环境) l...
    _奋斗努力阅读 228评论 0 0
  • 面向对象 单体创建对象 var Tom ={ //属性 name:'tom', age:18, //方法 show...
    张明越阅读 279评论 0 0

友情链接更多精彩内容