JavaScript for Kids 学习笔记11. 面向对象
2017-03-14 14:22
751 查看
1. 一个简单的 Object
dog.name;
dog.age = 6;
2. 给Object添加成员函数
3. 在多个Object之间共享一个成员函数
4. 构造函数
这里的Car就是一个function,真的。虽然从名字来看,它更像其他语言中的 class,但它依然只是一个function。在调用这个函数时,前面加个new,就生成了一个Object。
下面是在Chome控制台的显示结果。 注意 Object.getPrototypeOf( ) 这个函数。
我们随便写个函数,在调用时前面加个new,都会生成一个Object。如下图所示:
5. 在html上显示一辆小汽车
6. 把上面的drawCar函数变成Car的成员函数
Car.prototype.draw 注意这里的 prototype , 这是添加成员函数的方法。
7. 添加一个moveRight成员函数
8. 添加动画,小汽车动起来
var dog = { name: "Pancake", legs: 4, isAwesome: true };
dog.name;
dog.age = 6;
2. 给Object添加成员函数
dog.bark = function() { console.log("Woof woof! My name is " + this.name + "!"); }; dog.bark(); // 调用一下试试 this.name // this , 表示自己. this.name 就是 “自己的名字”
3. 在多个Object之间共享一个成员函数
var speak = function () { console.log(this.sound + "! My name is " + this.name + "!"); }; var cat = { sound: "Miaow", name: "Mittens", speak: speak }; var pig = { sound: "Oink", name: "Charlie", speak: speak }; var horse = { sound: "Neigh", name: "Marie", speak: speak };
4. 构造函数
var Car = function (x, y) { this.x = x; this.y = y; }; var tesla = new Car(10, 20); console.log(tesla); var nissan = new Car(100, 200); console.log(nissan);
这里的Car就是一个function,真的。虽然从名字来看,它更像其他语言中的 class,但它依然只是一个function。在调用这个函数时,前面加个new,就生成了一个Object。
下面是在Chome控制台的显示结果。 注意 Object.getPrototypeOf( ) 这个函数。
我们随便写个函数,在调用时前面加个new,都会生成一个Object。如下图所示:
5. 在html上显示一辆小汽车
var drawCar = function (car) { var carHtml = '<img src="img/car.png">'; var carElement = $(carHtml); // jQuery, 用html代码生成一个DOM元素 carElement.css({ // jQuery函数 css( ),设置css position: "absolute", left: car.x, top: car.y }); $("body").append(carElement); // jQuery函数 append( ), 追加一个子节点 }; drawCar(tesla); drawCar(nissan);
6. 把上面的drawCar函数变成Car的成员函数
Car.prototype.draw = function () { var carHtml = '<img src="img/car.png">'; this.carElement = $(carHtml); this.carElement.css({ position: "absolute", left: this.x, top: this.y }); $("body").append(this.carElement); }; var tesla = new Car(20, 20); var nissan = new Car(100, 200); tesla.draw(); nissan.draw();
Car.prototype.draw 注意这里的 prototype , 这是添加成员函数的方法。
7. 添加一个moveRight成员函数
Car.prototype.moveRight = function () { this.x += 5; this.carElement.css({ left: this.x, top: this.y }); }; tesla.moveRight(); nissan.moveRight();
8. 添加动画,小汽车动起来
setInterval(function(){ tesla.moveRight(10); }, 1000);
相关文章推荐
- JavaScript学习笔记(七)----面向对象的程序设计
- 【JavaScript】学习笔记(对象的访问,创建;for-in循环)
- JavaScript for Kids 学习笔记:准备
- ArcGIS API for JavaScript 4.2学习笔记[11] 官方第五章Popups(弹窗)概览与解释
- [原]Java程序员的JavaScript学习笔记(6——面向对象模拟)
- JavaScript for Kids 学习笔记3. 数组
- JavaScript for Kids 学习笔记9. 用户交互
- JavaScript for Kids 学习笔记5. 分支和循环
- JavaScript for Kids 学习笔记7. 函数
- javascript学习笔记(4)--with和for(in)对象语句
- JavaScript高级程序设计学习笔记--面向对象的程序设计(二)-- 继承
- JavaScript for Kids 学习笔记2. 数据类型与变量
- javaScript-面向对象学习day3笔记
- JavaScript for Kids 学习笔记10. 寻宝
- Java程序员的JavaScript学习笔记(11——jQuery-在“对象”层面扩展)
- javascript学习笔记 - 面向对象 理解对象
- javascript学习笔记(4)--with和for(in)对象语句
- Asp.Net Ajax 学习笔记11 Microsoft AJAX Library中的面向对象类型系统
- JavaScript for Kids 学习笔记8. DOM & jQuery
- JavaScript for Kids 学习笔记4. Objects