//游戏开发之面向对象
//在js的开发模式中有两种模式:函数式+面向对象
//1.es5
// 拓展一:函数的申明和表达式之间的区别
// 函数的申明:
// function funA(){
//
// }
// 表达式的写法:(推荐)
// let funB=function(){
//
// }
// 区别在于表达式的写法是会变量的提升!在执行的时候会要去合适的判断才执行
// callback&&callback() // (function () {
// //所要执行的......
// })()
// 1.最简单的创建对象的:(单一)
// var obj=new Object();
// var obj={}
//
// obj.name="xie";
// obj.age=21;
// obj.say=function(){
// console.log(this.name+this.age);
// }
// 2.工厂化构造函数创建(拥有共同的方法)
var Animal=function(name,age) {
this.name=name;
this.age=age;
this.say=function(){
console.log(this.name+" "+this.age);
}
}
//原型链对象 实例共享属性
Animal.prototype.say=function(){
console.log(this.name+""+this.age);
}
var cat=new Animal("小狗","3")
cat.say();
// 方法被其他对象执行
var params={
name:'小猫',
age:4,
}
//cat的say方法被params这个对象调用,并且采用params的参数
apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性.
Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args-->arguments)
/*定义一个人类*/
3 function Person(name,age)
4 {
5 this.name=name;
6 this.age=age;
7 }
8 /*定义一个学生类*/
9 functionStudent(name,age,grade)
10 {
11 Person.apply(this,arguments);
12 this.grade=grade;
13 }
14 //创建一个学生类
15 var student=new Student("qian",21,"一年级");
16 //测试
call示例
在Studen函数里面可以将apply中修改成如下:
Person.call(this,name,age);
cat.say.apply(params) ES6:
class Animal{
constructor(name="",age=1){
this.name=name;
this.age=age;
}
say(){
console.log(this.name+this.age);
}
}
class Cat extends Animal{
constructor(name,age){
super(name,age);
}
//覆盖父类的方法
say(){
//想要执行父类的方法
super.say();
}
}

微信小游戏开发之JS面向对象的更多相关文章

  1. 微信小程序开发之formId使用(模板消息)

    基于微信小程序的模板消息:基于微信的通知渠道,我们为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.模板推送位置:服务通知模板下发条件:用户本人在微信体系内与页面有交互 ...

  2. 微信小程序开发之picker

    一.绑定简单数组 通过bindChange控制index,使得当前选择值发生改变 示例1 data: { Data: ['A','B'], Index: 0, }, <picker class= ...

  3. 微信小程序开发之scroll-view

    本文主要介绍通过scroll-view实现回至顶部,如下效果 一.页面代码 顶部的工具栏放一个查找按钮,滚动区域实现分页,目的就是为了点击上一页\下一页时,自动回到顶部. scroll-view必须指 ...

  4. 微信小程序开发之picker选择器组件用法

    picker组件时一个从底部弹起的可滚动的选择器(嵌入页面滚动器组件picker-view查看https://mp.weixin.qq.com/debug/wxadoc/dev/component/p ...

  5. 微信小程序开发之https从无到有

    本篇不讲什么是https,什么是SSL,什么是nginx 想了解这些的请绕道,相信有很多优秀的文章会告诉你. 本篇要讲的在最短的时间内,让你的网站从http升级到https. 开始教程前再说一句:ht ...

  6. 微信小程序开发之https服务器搭建三步曲

    本篇文章主要讲述3个方面的内容,如下: 1.SSL证书的获取 2.服务器 Nginx SSL 证书的配置. 3.如何兼容80端口和443端口以及为什么要同时兼容这两个端口. 1.SSL证书的获取 ht ...

  7. 微信小程序开发之http到https的转化

    小程序从公布到现在已经过去好几个月了,本来从小程序发布出来就准备抱着微信的大腿进行一波小程序开发的,但是由于公司项目小程序暂时不支持,也就只能一直搁浅.过年过来偶然和朋友谈起小程序,觉的工作再忙也得找 ...

  8. 微信小程序开发之IOS/Android兼容坑(持续更新)

    一.时间转换问题: 这不只是小程序上面的问题是ios系统 都有这个问题就是new  Date("2017-06-16") 在IOS会出现NAN的情况所以对于时间转换需要另行封装,解 ...

  9. 微信小程序开发之tab导航栏

    实现功能: 点击不同的tab导航,筛选数据 UI:   js: data:{ navbar: ['半月维保', '季度维保', '半年维保',"年度维保"],    //count ...

随机推荐

  1. GUI颜色、字体设置对话框

    %颜色设置对话框 uisetcolor %c 红色 c=uisetcolor %默认规定颜色 c=uisetcolor([ ]); %设置曲线颜色 h = plot([:]); c = uisetco ...

  2. Symfony2 学习笔记之服务容器

    现在的PHP应用程序都是面向对象开发,所以主要是由对象构成.有的对象可以方便的分发邮件信息而有的可能帮你把信息写入到数据库中.在你的应用程序中,你可能创建一个对象用于管理你的产品库存,或者另外一个对象 ...

  3. .NET 常用ORM之Nbear

    NBear是一个基于.Net 2.0.C#2.0开放全部源代码的的软件开发框架类库.NBear的设计目标是尽最大努力减少开发人员的工作量,最大程度提升开发效率,同时兼顾性能及可伸缩性. 一.新建项目并 ...

  4. 搭建Vue2+Vuex+Webpack+Pug(jade)+Stylus环境

     一.开发环境配置 开始之前,假设你已经安装了最新版本的 node 和 npm. 全局安装 vue-cli 和 webpack : npm install vue-cli webpack -g 创建工 ...

  5. windows WTL使用命令行参数

    两中方法: 第一种: int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLin ...

  6. solr 使用指定数据源

    1,将solr 解压,我们观察发现它其实即可以是web服务也可以做数据分析 数据库 2,我们在example目录下新建一个hai的文件夹,用于存放数据 参考solr 目录,将solr.xml 复制一份 ...

  7. RTP/RTCP 和 SRTP/SRTCP协议(转)

    源: RTP/RTCP 和 SRTP/SRTCP协议

  8. pyqt5 树节点点击实现多窗口切换

    # coding=utf-8 import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui ...

  9. Vue基础进阶 之 计算属性的使用

    计算属性的基本使用 初始小示例: 代码: window.onload = () =>{ new Vue({ el:'div', data:{ msg:'' } }) } </script& ...

  10. JS方法转字符串

    今天接手的代码比较特殊,需要动态拼接一个table,每一行<tr>都是通过转换为字符串,再拼接在一起放到tbody中的. 其中有的td标签中有a标签,需要给a标签添加点击事件,参数好多,动 ...