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里面,对象思想不可少,但是不 ...
随机推荐
- plsql Developer----plsql软件总结(待续更新)
如何查看数据库所有的表 打开pl/sql Developer连接上数据库了以后,在菜单 Tools 下面有个 Object browser 将其打勾(如果已经打勾了就不用管了),之后在IDE的左边有个 ...
- RuPengWang项目
项目 Day1------------------------- 说明:建外键约束.ashx+Razor RupengWang创建三个类库Model DAL BLL后台:RupengWang.Admi ...
- 本地测试html文件时CSS效果显示, 但是当django的服务器上运行时效果不显示
本地测试时各种效果都显示, 但是当在django服务器上测试时, 效果却不显示, 原因是我将css文件放在一个static文件夹里, 没有在settings中设置static_dir选项.将stati ...
- Shell编程实战 1.1 监控思路架构介绍
监控思路,架构介绍 需求:使用shell定制各种个性化的告警工具,但需要统一化管理,规范化管理. 思路:指定一个脚本包,包含主程序,子程序,配置文件,邮件引擎,输出日志等. 主程序:作为脚本的入口,是 ...
- Shell编程进阶 1.5 if逻辑判断
逻辑判断 vim if.sh #!/bin/bash ## ## a= ] then echo "a>3" fi sh if.sh a>3 vim if2.sh #!/ ...
- linux命令-mke2fs
想在磁盘下写东西,必须要先格式化 /////////////////////////////////////////////////////////////////////////////////// ...
- C语言学习笔记--数组参数和指针参数
1. 数组参数退化为指针的意义 (1)C 语言中只会以值拷贝的方式传递参数,当向函数传递数组时,将整个数组拷贝一份传入函数导致执行效率低下,C 语言以高效作是最初的设计目标,所以这种方法是不可取的. ...
- DAY15-Django模板语言
Django模板系统 官方文档 你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. def current_datetime(reque ...
- Java was started but returned exit code=13 问题解决
我在安装完jdk后,也对环境进行了配置,且环境的配置是没有问题的.最后我下载了eclipse,然后打开之后就发现了以下图所示的错误: Java was started but returned exi ...
- 【WebRTC】术语
WebRTC,名称源自网页实时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API.它于2011年6月1日开源并在Goog ...