JavaScript面向对象编程入门
来源极客网
function Person() {
var _this = {} //创建一个空的对象,接着我们利用这个"空的对象"承载Person的属性和方法
_this.sayHello = function(){
alert("PHello");
}
return _this;
}
function Teacher_1() {
var _this = Person();//注意这里的语法小括号
return _this;
}
//演示覆写父类中的方法语法
function Teacher_2() {
var _this = Person();
_this.sayHello = function () {
alert("Thello");
}
return _this;
}
//演示子类怎样调用父类的方法
function Teacher() {
var _this = Person();
var surperSay = _this.sayHello; //1.通过"赋值"的代码思想进行处理
_this.sayHello = function () {
surperSay.call(_this) //2.通过call()方法进行强行调用
alert("Thello");
}
return _this;
}
//调用我们创建对象Teacher
var t = Teacher();
t.sayHello();//调用到我们在Person中声明的sayHello
自己随便定义html运行一下上面的代码,感受一下
//演示用一个函数将一个function包裹起来,然后执行它
//第5行增加传参的情况怎样处理
(function(){
var n = "ime";
function Person(name) {
var _this = {} //创建一个空的对象,接着我们利用这个"空的对象"承载Person的属性和方法
_this._name = name;
_this.sayHello = function(){
alert("PHello" + this._name + ":"+ n);
}
return _this;
}
window.Person = Person; //表示将函数Person"挂"给全家变量,
}());//大括号右边的一对小括号,是必须有的,表示自运行
//演示了
function Teacher(name) {
var _this = Person(name);
var superSay = _this.sayHello;
_this.sayHello = function () {
superSay.call(_this);
alert("Thello" + _this._name);
}
return _this;
}
var t = Teacher("iwen");
t.sayHello();
例子3
//字面形式的Javascript面向对象
var person = {
name:"James",
age:30,
eat:function(){
alert("能吃")
}
}
//给person添加一个属性 function Person(){ }
//使用Person的原型链添加属性和方法
Person.prototye={
name="James",
age:30,
eat:function(){
alert("我在吃");
}
}
//使用new 使用这个对象
var p = new Person();//new仅仅是一个关键词,和Java,C#中的new作用完全不同
JavaScript面向对象编程入门的更多相关文章
- 快速学习JavaScript面向对象编程
到处都是属性.方法,代码极其难懂,天哪,我的程序员,你究竟在做什么?仔细看看这篇指南,让我们一起写出优雅的面向对象的JavaScript代码吧! 作为一个开发者,能否写出优雅的代码对于你的职业生涯至关 ...
- JavaScript面向对象轻松入门之封装(demo by ES5、ES6、TypeScript)
本章默认大家已经看过作者的前一篇文章 <JavaScript面向对象轻松入门之抽象> 为什么要封装? 封装(Encapsulation)就是把对象的内部属性和方法隐藏起来,外部代码访问该对 ...
- 再谈javascript面向对象编程
前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始 ...
- JavaScript面向对象编程学习笔记
1 Javascript 面向对象编程 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例 ...
- 深入理解Javascript面向对象编程
深入理解Javascript面向对象编程 阅读目录 一:理解构造函数原型(prototype)机制 二:理解原型域链的概念 三:理解原型继承机制 四:理解使用类继承(继承的更好的方案) 五:建议使用封 ...
- 【转】Javascript 面向对象编程(一):封装
原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html Javascript ...
- Javascript 面向对象编程(一):封装 by 阮一峰
<Javascript高级程序设计(第二版)>(Professional JavaScript for Web Developers, 2nd Edition) 它们都是非常优秀的Java ...
- 转:javascript面向对象编程
作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的Object模型很独特,和其他语言都不一样,初学 ...
- 探讨javascript面向对象编程
(个人blog迁移文章.) 前言: 下面将探讨javascript面向对象编程的知识. 请不要刻意把javascript想成面向对象编程是理所当然的. javascript里面,对象思想不可少,但是不 ...
随机推荐
- 一次调用cloudera的的API和JSON想到的
JSON的null字段 在我的项目中修改了YARN的资源池,到cloudera中就报错,查询还不报错,但是修改的时候,就报错,大致意思就是信息有异常,“包含了尖括号. 因为通过API+json交互,我 ...
- 五、Jmeter--关联(正则表达式)
一.什么时候需要关联? 1. 服务器返回的动态变化而且对业务有影响的需要关联. 2. 回放脚本看是否正确,检查下脚本,是否有动态数据影响 3. 一大串字符串,每次请求参数是否有变化 4. 可以找开发问 ...
- 蓝桥杯 基础练习 BASIC-14 时间转换
基础练习 时间转换 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间 ...
- Solaris10上如何识别新增加的HDLM LUN
先在磁盘阵列上将新加LUN映射给主机组,然后在光纤交换机上增加相关zone信息.以下是Solaris10上需要执行的操作步骤. 在Solaris10上重新扫描磁盘 -bash-3.2# cfgadm ...
- Compare and Swap(CAS)
CAS(Compare and Swap)是个原子操作.拿到一个新值后,CAS将其与内存中的值进行比较,若内存中的值和这个值不一样,则将这个值写入内存,否则,不做操作.在Java的 java.util ...
- NT AUTHORITY\IUSR登录失败解决方法
NT AUTHORITY\IUSR登录失败解决方法 1 今天打开网站时,突然报这个错误,平时都好好的 Cannot open database "aslkm" requested ...
- #关于 OneVsRestClassifier(LogisticRegression(太慢了,要用超过的机器)
#关于 OneVsRestClassifier #注意以下代码中,有三个类 from sklearn import datasets X, y = datasets.make_classificati ...
- 关于EMGCU中的cvertern.dll无法找到的问题
方法1:自己到EMgucv目录的bin里面拷贝x86文件夹到自己程序的debug目录 方法2:将这个X86目录添加到PATH变量,记得要注销,否则新添加的无法起作用,VS2010还显示无法找到.
- LAMP 3.1 mysql的root密码重置
给mysql设置密码 /usr/local/mysql/bin/mysql -uroot 可以直接登录mysql 设置密码 /usr/local/mysql/bin/mysqladmin -uroot ...
- 更加省心的服务,IntentService的使用
通过前两篇文章的学习,我们知道了服务的代码是默认运行在主线程里的,因此,如果要在服务里面执行耗时操作的代码,我们就需要开启一个子线程去处理这些代码.比如我们可以在 onStartCommand方法里面 ...