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 ...
随机推荐
- Js函数初学者练习(一)switch-case结构实现计算器。
前 言 JRedu 给大家介绍一点JS函数的练习题希望初学者多做一些练习能够更好的掌握JS的函数,以及能够提升大家的逻辑思维.(我也是个渣渣希望路过的大神多提建议或意见) 希望能够对大家有所帮助 ...
- 第二次项目冲刺(Beta阶段)5.19
1.提供当天站立式会议照片一张 会议内容: ①新成员加入,熟悉团队. ②制定新一轮的任务计划. 2.每个人的工作 (1)工作安排 队员 今日进展 明日安排 王婧 #42文件分类改为按个人分类 #42文 ...
- [转载] java中静态代码块的用法 static用法详解
一.java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...
- 201521123037 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 1.2 可选:使用常规方法总结其他上课内容. 接口与抽象类 ...
- 微信小程序购物车产品计价
微信小程序购物车产品计价: 问题:当选中商品,价格累加时会出现无限循环小数 解答:在计算前先parseFloat(变量),再计算的最后使用(变量).toFixed(2)保留两位小数 例如: jiaCa ...
- panda库------对数据进行操作---合并,转换,拼接
>>> frame2 addr age name 0 beijing 12 zhang 1 shanghai 24 li 2 hangzhou 24 cao >>> ...
- TypeMismatchException: Provided id of the wrong type for class zhongfucheng.user.entity.User.
今天在使用SSH框架做项目的时候出现了这个错误,找了我非常非常多的时间!!!!!!! Struts Problem Report Struts has detected an unhandled ex ...
- springboot+swagger2
springboot+swagger2 小序 新公司的第二个项目,是一个配置管理终端机(比如:自动售卖机,银行取款机)的web项目,之前写过一个分模块的springboot框架,就在那个框架基础上进行 ...
- Opengl4.5 中文手册—F
索引 A B C D E F G H I J K L M N O P Q ...
- AngularJS小结
1.简介 AngularJS 通过 ng-directives 扩展了 HTML. 2.AngularJS指令 ng-app 指令定义一个AngularJS 应用程序的根元素.指令在网页加载完毕时会自 ...