JavaScriptOOP
| 1. OOP基础 |
1.1面向对象编程OOP
1.2类和对象
function Person(name,age){
this.name=name;
this.age=age;
this.say=function(content){
// 在类中,访问类自身的属性,必须使用this.属性 调用
alert("我叫"+this.name+",今年"+this.age+"岁。我说了一句话:"+content);
}
}
var zhangsan = new Person("张三",18);
var obj = new 类名(属性1的具体值);
var s="123"; // 不是对象
s.name="aaa";
console.log(typeof s); // String
console.log(s.name); // Undefined 字面量声明的字符串不是对象,不能添加属性。
| 2. 成员属性、静态属性和私有属性 |
2.1成员属性与成员方法
var zhangsan = new Person("张三");
zhangsan.age = 14; // 追加成员属性
console.log(zhangsan.age); // 调用成员属性
2.2静态属性与静态方法
Person.count = "60亿"; // 声明静态属性
console.log(Person.count); // 调用静态属性
var lisi = new Person("李四");
console.log(lisi.count); // Undefined 静态属性是属于类的,只能用类名调用
2.3私有属性与私有方法
function Person(){
var num = 1; // 私有属性
function func(){}; // 私有方法
}
私有属性和私有方法的作用域,只在构造函数内部有效。即,只能在构造函数内部使用,无论使用对象名还是类名都无法调用。
| 3. JS模拟实现封装 |
function Person(){
var age=0;
this.setAge=function(ages){
age=ages;
}
this.getAge=function(){
return age;
}
}
| 4. JS中的this指向详解 |
4.1谁最终调用函数,this就指向谁
4.2this指向的规律!!!(与函数的调用方式息息相关)
func();
obj.func(); // 狭义对象
document.getElementById("div1").onclick = func; // 广义对象
var arr = [1,2,3,func,4,5,6];
arr[3]();
setTimeout(func,1000);
var obj1 = new func();
| 5. 原型与原型链 |
5.1__proto__与prototype
5.2原型链的指向问题
| 6. 原型属性与原型方法 |
function Person(){
this.name = "张三"; // 成员属性
}
Person.prototype.say = function(){};
/**
* 给数组添加一个遍历打印所有值的方法
*/
Array.prototype.eachAll = function(){
for (var i=0;i<this.length;i++) {
console.log(this[i]);
}
}
var arr = [1,2,3,4,5,6,7];
arr.eachAll();
| 7. for-in循环 |
function Person(){
this.name = "张三";
this.age = 14;
this.func1 = function(){
}
}
Person.prototype.name1 = "zhangsan";
Person.prototype.age1 = 15;
Person.prototype.func2 = function(){};
var zhangsan = new Person();
for(keys in zhangsan) {
if (zhangsan.hasOwnProperty(keys)) {
console.log(zhangsan[keys]);
}
}
| 8. 继承 |
8.1扩展Object实现继承
function Parent(){}
function Son(){}
Object.prototype.extend = function(parent){
for(var i in parent){
this[i]=parent[i];
}
}
var p = new Parent();
var s = new Son();
s.extend(p);
8.2使用原型实现继承
function Parent(){}
function Son(){}
Son.prototype = new Parent();
var s = new Son();
8.3call/apply/bind实现继承
function Parent(name){}
function Son(no,name){
this.no = no;
Parent.call(this,name);
}
var s = new Son(12,"张三");
| 9. 闭包 |
function func1(){
var num = 1;
function func2(){
return num;
}
return func2;
}
var num = func1()();
JavaScriptOOP的更多相关文章
- 初识JavaScriptOOP(js面向对象)
初识JavaScriptOOP(js面向对象) Javascript是一种基于对象(object-based)的语言, 你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言 ...
- 详解面向对象编程——JavaScriptOOP
前 言 絮叨絮叨 学习了JS之后,不知道大家觉得怎们样呢? 今天我们就来讲一下JS中最重要的一个环节,JavaScript中的面向对象编程OOP,这里的东西有点难,也有点绕. 可是! 不要灰 ...
- javascript-OOP基础详解
前 言 S N 今天给大家详解一下面向对象编程(简称OOP)基础,OOP 语言使我们有能力定义自己的对象和变量类型 .对象拥有属性和方法 . 所以今天就给大家详解对象和类 . 1-1简介 ...
- 【JavaScript OPP基础】---新手必备
今天和大家分享一下近期整理的有关JavaScriptOPP的基础知识~~~我们一起来学习一下-- JavaScriptOPP基础 一.面向对象编程OOP1.语言的分类:面向机器:汇编语言面向过程:C语 ...
- JavaScript模块化演变 CommonJs,AMD, CMD, UMD(一)
原文链接:https://www.jianshu.com/p/33d53cce8237 原文系列2链接:https://www.jianshu.com/p/ad427d8879cb 前端完全手册: h ...
随机推荐
- PHP(Math的调用)
<script> //数学函数(用Math来调用)://round=四舍五入最接近的整数// var l = 1.1;// var y1 = Math.round(l);// docume ...
- 集美大学网络1413第八次作业(团队四)-- 第一次项目冲刺(Alpha版本)成绩
首先非常抱歉,刚休完假,凌晨才回来,导致这么晚发布成绩,以后旅行可以考虑带点轻便点的笔记本~ O(∩_∩)O 第一次项目冲刺结束了,可以看出来,有的团队做的很棒,也有的团队组合不是很理想,导致进度一直 ...
- 201521123049 《JAVA程序设计》 第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java ...
- Java 课程设计 "Give it up"小游戏设计(个人) 201521123077
1.团队课程设计博客链接 http://www.cnblogs.com/agts/p/7067948.html 2.个人负责模块或任务说明 个人任务:实现游戏画面的制作,游戏逻辑的编写,以及一些模块与 ...
- 201521123005 《Java程序设计》 第十一周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...
- Java课程设计-学生基本信息管理 201521123036
团队课程设计博客链接 团队博客链接 个人负责模块或任务说明 个人负责模块 任务说明 用户登录,注册 登录,注册,判断用户是否存在,添加用户 学生信息管理菜单 按钮,跳转相应界面,退出程序 学生信息添加 ...
- 201521123013 《Java程序设计》第11周学习总结
1. 本章学习总结 2. 书面作业 Q1.1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥 ...
- 201521123018 《Java程序设计》第12周学习总结
1. 本章学习总结 你对于本章知识的学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.da ...
- 201521044091 《Java程序设计》第11周学习总结
1. 本章学习总结 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥同 ...
- 移动商城第八篇【添加商品之基本属性和大字段数据(FCK文本编辑器)】
添加商品 修改对应的超链接url,controller转发到对应的JSP页面 <a href="${path}/item/toAddItem.do" class=" ...