JS-面向对象相关
- onload 初始化 类似 构造函数初始化对象
- 全局变量 -> 属性
- 函数 -> 方法
- 面向对象中最重要的就是 this的理解 this报错的原因 定时器的使用
function Aaa()
{
var _this=this;
this.a=1; //使用定时器 其中的this 指向window
setInterval(function (){ _this.show();
}, 1000);
} Aaa.prototype.show=function ()
{
//如果不定义_this,那么this.a调用的就是 window
alert(this.a);
}; window.onload=function ()
{
new Aaa();
};
- Json方式 的面向对象
//相对简单 如果需要多个对象就不行了 比如 多点登录
var obj={a: 12, b: 5, c: function (){
alert(this.a);
}}; obj.c(); var p1={
name: 'blue',
sex: '男',
showName: function ()
{
alert('我的名字是:'+this.name);
},
showSex: function ()
{
alert('我的性别是'+this.sex+'的');
}
}; p1.showSex();
JS本身是没有继承标准的 js也没有提供标准 所谓的继承就是 具备父级的属性和方法 开发者根据需要 实现自己需求 用了各种方法
<?php
// PHP中的继承
class Person
{
function __construct($name, $sex)
{
$this->name=$name;
$this->sex=$sex;
} function showName()
{
echo $this->name;
} function showSex()
{
echo $this->sex;
}
} class Worker extends Person
{
function __construct($name, $sex, $job)
{
parent::__construct($name, $sex); $this->job=$job;
} function showJob()
{
echo $this->job;
}
} $w1=new Worker('blue', '男', '打杂的'); $w1->showName();
$w1->showJob();
?>
//js中的 一种继承写法
function Person(name, sex)
{
this.name=name;
this.sex=sex;
} Person.prototype.showName=function ()
{
alert(this.name);
}; Person.prototype.showSex=function ()
{
alert(this.sex);
}; //------------------------------------- function Worker(name, sex, job)
{
//this->new出来的Worker对象
//构造函数伪装 调用父级的构造函数——为了继承属性
Person.call(this, name, sex); this.job=job;
} //原型链 通过原型来继承父级的方法 这种赋值会影响Person的方法 不推荐使用
//Worker.prototype=Person.prototype;
//循环赋值
for(var i in Person.prototype)
{
Worker.prototype[i]=Person.prototype[i];
} Worker.prototype.showJob=function ()
{
alert(this.job);
}; var oP=new Person('blue', '男');
var oW=new Worker('blue', '男', 'php'); oP.showName();
oP.showSex(); oW.showName();
oW.showSex();
oW.showJob();
JS-面向对象相关的更多相关文章
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装
接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...
- JS面向对象笔记二
菜单导航,<JS面向对象笔记一>, 参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函 ...
- js面向对象设计之class继承
EcmaScript 2015 (又称ES6)通过一些新的关键字,使类成为了JS中一个新的一等公民.但是目前为止,这些关于类的新关键字仅仅是建立在旧的原型系统上的语法糖,所以它们并没有带来任何的新特性 ...
- js面向对象设计之function类
本文仅探讨如何合理的使用 function 在 javascript中实现一个面向对象设计的类.总所周知,javascript 并不能实现一个真正意义上的类,比如 protect 比如 函数重载.下面 ...
- ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能
前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...
- js 面向对象 动态添加标签
有点逻辑 上代码 thml布局 点击查看代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- js面向对象学习 - 对象概念及创建对象
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
随机推荐
- Spring Data MongoDB 分页查询
在上篇文章 Spring Data MongoDB 环境搭建 基础上进行分页查询 定义公用分页参数类,实现 Pageable 接口 import java.io.Serializable; impor ...
- Node服务端极速搭建 -- nvmhome
> 本文意在让你掌握极速搭建Node服务端(任何Project) ```$ whoaminame: kelvinemail: kelvv@outlook.comhomepage: www.kel ...
- Python爬虫教程-09-error 模块
Python爬虫教程-09-error模块 今天的主角是error,爬取的时候,很容易出现错,所以我们要在代码里做一些,常见错误的处,关于urllib.error URLError URLError ...
- flask框架下的jinja2模板引擎(2)(过滤器与自定义过滤器)
flask框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html 这篇论文主要用来记录下 jinja2 的过滤器. 什么是过 ...
- 关于jrebel碰到的一次问题记录
今天使用jrebel更新gitlab的代码之后,项目总是启动报错.报一个类找不到,但是这个类在整个目录下搜索不到,在target的class目录看了下也没有对应的目录.郁闷了好久,最后同事看了下,在整 ...
- JavaScript停止事件冒泡和取消事件默认行为
功能:停止事件冒泡 function stopBubble(e) { // 如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.stopPropagation ) { ...
- 安装SCOM Reporting Server
在SQL群集计算机上可以安装SCOM Reporting Server. 1.运行SQL Server安装程序,选择 全新安装SQL Server,不能向已有的群集实例中添加Reporting Ser ...
- 软件磁盘阵列 (Software RAID)
什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,容错式廉价磁盘阵列. RAID 可以通过一些技术(软件或硬件),将多个较 ...
- 第一个c程序和vs2017 在打开MFC rc文件时找不到rcdll.dl
第一个c程序 #include<stdio.h> int main() { ; ; printf_s("请输入两个数字:"); scanf_s("%d,%d& ...
- cygwin64-安装包管理工具
1.dos command, install pkg $ setup-x86_64.exe -q -P curl $ setup-x86_64.exe -q -P lynx 2. cygwin64 c ...