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里面,对象思想不可少,但是不 ...
随机推荐
- spark分区
spark默认的partition的分区数是和本机CPU的核数保持一致: bucket的数量和reduce的数量一致:buket的概念是map会将计算获得数据放到各个buket中,每个bucket和一 ...
- DCOS安装
安装pre-flight master机器会安装上安装文件(同时check条件是否满足要求),其他的agent设备只是check各种条件是否具备. 确保53/2181端口没有被占用:centos7每次 ...
- 西安电子科技大学第16届程序设计竞赛 F Operating System (unique() 去重函数)
链接:https://www.nowcoder.com/acm/contest/107/F来源:牛客网 Operating System 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ ...
- Rails中文乱码问题【转】
乱码情况一:netbeas控制台输出乱码 具体表现为:在程序中定义中文字符串,然后输出.但输出为乱码 解决方法:打开netbeans安装目录,找到etc目录下的netbeans.conf文件.在net ...
- SQL基础(3)
SQL FULL JOIN (1)SQL FULL JOIN关键字 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行. (2)语法 SELECT column_name(s) FROM t ...
- Python unittest excel数据驱动 写入
之前写过一篇关于获取excel数据进行迭代的方法,今天补充上写入的方法.由于我用的是Python3,不兼容xlutils,所以无法使用copy excel的方式来写入.这里使用xlwt3创建excel ...
- Drools学习笔记3—Conditions / LHS—字段约束连接&字段约束操作符
字段约束连接 用于字段约束 对象内部多个约束连接,采用“&&”(and).“||”(or)和“,”(and) 执行顺序:“&&”(and).“||”(or)和“,” 字 ...
- CGContextRef详解
/* CoreGraphics - CGContext.h */ /** Graphics state functions. **/ //为了让开发者在进行坐标变换时无须计算多次坐标变换后的累加结果, ...
- Plist文件存储
一.Plilst存储简介 (1)只能储存NSData.NSNumber.NSDictionary.NSString.NSDate.NSArray.BOOL等数据类型,如果需要存储其他NSObject类 ...
- 关于EF中实体和数据表以及查询语句映射的问题
关于EF中实体和数据表以及查询语句映射的问题? 很多人在使用的时候分不清楚 实体字段应该少于等于(数据库中的表字段或者SQL查询中的临时字段).这样在查询或者添加修改都不会出现问题 如果实体的字段大于 ...