JavaScript事件处理 DOM
窗口事件 表单元素事件 图像事件 键盘事件 鼠标事件
事件三要素:事件源(目标对象),事件(动作),事件处理程序(做什么)
(1)事件源.事件 =事件处理程序
事件源.事件 =function(){}
(2)在元素中直接绑定
(3)绑定事件监听函数
btn3.addEventListener("click"(点击事件),cs(函数名),false);
*****************************************************************
json格式
var person={name:"zs",age:20};
//面向对象的思想
//创建一个对象模板
//其他语言中创建对象class类
//在JavaScript中创建对象模板是构造函数(ES5的标准,ES6用class)
function Student(name,subject,score){
this.name=name;
this.subject=subject;
this.score=score;
this.printScore=function(){
console.log(this.name+this.subject+this.score);
}
}
var stu3=new Student("zs","math",60);
stu3.printScore();
********************************************************************
其他创建对象方法
1.使用内置对象 object
继承object类来实例化,再赋值
var 对象名=new object();
2.对象字面量
var 对象名={属性名:,属性名:,方法名:function(){}}
3.工厂函数,创建多个对象实例
function createHero(name,blood,weapon){
var h=new Object();
h.name=name;
h.blood=blood;
h.weapon=weapon;
h.attack=function(){
console.log(this.name+this.blood+this.weapon);
}
return h;
}
var hero=createHero("孙尚香",10,"炮");
hero.attack();
4.构造函数
function Hero(name,blood,weapon){
this.name=name;
this.blood=blood;
this.weapon=weapon;
this.attack=function(){
console.log(this.name+this.blood+this.weapon);
}
}
var h1=new Hero("sfasdf",12,"fdsf");
h1.attack();
var h2=new Hero("sfasdf",321,"fdsf");
h2.attack();
//查看两个attack的方法是否是同一个
console.log(h1.attack===h2.attack);
//如何解决:1.使用命名函数把attack匿名函数提出
5.原型创建对象
function Hero(name,blood,weapon){
this.name=name;
this.blood=blood;
this.weapon=weapon;
}
Hero.prototype.attack=function(){
console.log(this.name+this.blood+this.weapon);
}