JavaScript—面向对象小例子
什么是面向对象
要是以前别人问我。随口道来,封装继承多态,万物皆对象。。。一大推。说的自己都以为自己掌握了面向对象。呵呵一笑。确实掌握了 只是不会用。。。。。
什么是面向对象编程
以前 学。Net 虽然MVC 本身就是面向对象。也就没管什么思想,就记住步骤,跟着写就好。
现在想想,那时候还是太年轻了,当我看了设计模式里面对MCV的一个解释。发现并不是这么回事,面向对象 学问可大了,学好面向对象,锻炼思想,便开始虚心起来,觉得不简单。
废话说了那么多。
什么是面向对象编程。现在 我觉得 就是以对象的方式去写代码,不在考虑怎么一步步的实现效果。

按照之前我们可能会 先写10个DIV 然后随机位置 随机颜色 一步步
按照面向对象 就不在这样想了 先看有几个对象 在属性 方法。。
这个有一个盒子对象。 盒子有大小 位置 背景颜色这些属性
有随机颜色 随机位置 和出现的方法
那么就可以开始动手了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
} #container {
width: 800px;
height: 800px;
background-color: #cccccc;
position: relative; }
</style>
</head>
<body>
<div id="container"></div>
</body>
<script>
// 方块对象box
//盒子有大小,位置 背景颜色等属性。
//方法有随机改变位置 随机背景颜色
function Box(element) {
this.width = 20
this.height = 20
this.backgroundColor = 'red'
this.x = 50
this.y = 50
this.elemen=element
this.div=document.createElement('div')
element.appendChild(this.div) }
//初始化
Box.prototype.init=function(){
this.randombc()
this.randomxy()
this.div.style.width=this.width+'px';
this.div.style.height=this.height+'px'
this.div.style.backgroundColor=this.backgroundColor
this.div.style.position='absolute'
this.div.style.left=this.x+'px'
this.div.style.top=this.y+'px'
console.log(this.div)
}
Box.prototype.randomxy=function(){
this.x=randomNum(0,(this.elemen.offsetWidth-this.width)/this.width)*this.width
this.y=randomNum(0,(this.elemen.offsetHeight-this.height)/this.height)*this.height }
Box.prototype.randombc = function () {
let r = randomNum(0, 255)
let g = randomNum(0, 255)
let b = randomNum(0, 255)
this.backgroundColor = 'rgb(' + r + ',' + g + ',' + b + ')'
} function randomNum(minNum, maxNum) {
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum) }
let ele=document.getElementById('container')
let arr=[]
for (let i=0;i<10;i++){
arr[i]=new Box(ele)
arr[i].init()
}
setInterval(function () {
for (let i=0;i<arr.length;i++){
arr[i].init()
}
},500)
</script> </html>
面向对象 博大精深 需慢慢体会
JavaScript—面向对象小例子的更多相关文章
- JavaScript面向对象小抄集
前言 本文旨在记录JavaScript中面向对象的基础知识 搞明白JavaScript中的面向对象 一切都是对象 JavaScript中,除了基本类型外,其它类型都是对象类型 所谓对象就是若干属性的集 ...
- javascript平时小例子⑨(小型抽奖功能)
<!doctype html><html lang="en"> <head> <meta charset="utf-8" ...
- javascript平时小例子⑧(导航置顶效果)
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- javascript平时小例子⑦(鼠标跟随的div)
<!doctype html><html> <head> <meta charset="utf-8"> <title>无 ...
- javascript平时小例子⑥(简易计算器的制作)
<!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...
- javascript平时小例子⑤(投票效果的练习)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- javascript平时小例子④(setInterval使用2)
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...
- javascript平时小例子③(setInterval使用1)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- javascript平时小例子②(正则表达式验证邮箱)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>邮 ...
随机推荐
- 对上一篇Logstash的补充
主要补充内容: 1.同步多表 2.配置的参数个别说明 3.elasticsearch的"_id"如果有相同的,那么会覆盖掉,相同"_id"的数据只会剩下最后一条 ...
- Gym 101158D(暴力)
题意:给定两个长度为N的字符串,1<=N<=4000,求满足字符串1中的某个区间所有的字母种类和个数都与字符串2中的某个区间相同最长的区间长度. 分析: 1.预处理每个串字母个数的前缀和. ...
- oracle11g更改字符集
一.查看服务器字符集编码三种方式:1)select userenv('language') from dual; -- 推荐2)select * from V$NLS_PARAMETERS;3)sel ...
- JS笔记03
JS图片库 标记 需求效果: 网页中的图片链接显示在网页中的图片框内部而不是打开新的页面 //html部分 <!DOCTYPE html> <html> <head> ...
- Spring 控制反转容器(Inversion of Control – IOC)
系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...
- UVA - 11892 ENimEN(博弈)
题意:有n堆石子,两个人拿,拿走最后的石子的人赢,poopi先拿,条件是,每个人必须从另外一个人最后拿过的石子堆中取石子,若那堆石子被拿没了,才可以自由地拿其他堆.要求每次拿的石子数不能为0.问谁赢. ...
- oracle 的存储过程
-----推荐视频 https://ke.qq.com/webcourse/index.html#course_id=292495&term_id=100346599&taid= ...
- JS常用的正则表达式包
结构: Code: /* 用途:检查输入的Email信箱格式是否正确 输入:strEmail:字符串 返回:如果通过验证返回true,否则返回false */ function checkEmail( ...
- 五、SAP中定义变量和给变量赋值
一.代码如下: 二.执行效果图,如下:
- Kmp--P3375 【模板】KMP字符串匹配
题目描述 如题,给出两个字符串 s1 和 s2,其中 s2 为 s1 的子串,求出 s2 在 s1 中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组 next. (如果你不知道这 ...