来源极客网

 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面向对象编程入门的更多相关文章

  1. 快速学习JavaScript面向对象编程

    到处都是属性.方法,代码极其难懂,天哪,我的程序员,你究竟在做什么?仔细看看这篇指南,让我们一起写出优雅的面向对象的JavaScript代码吧! 作为一个开发者,能否写出优雅的代码对于你的职业生涯至关 ...

  2. JavaScript面向对象轻松入门之封装(demo by ES5、ES6、TypeScript)

    本章默认大家已经看过作者的前一篇文章 <JavaScript面向对象轻松入门之抽象> 为什么要封装? 封装(Encapsulation)就是把对象的内部属性和方法隐藏起来,外部代码访问该对 ...

  3. 再谈javascript面向对象编程

    前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始 ...

  4. JavaScript面向对象编程学习笔记

    1  Javascript 面向对象编程 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例 ...

  5. 深入理解Javascript面向对象编程

    深入理解Javascript面向对象编程 阅读目录 一:理解构造函数原型(prototype)机制 二:理解原型域链的概念 三:理解原型继承机制 四:理解使用类继承(继承的更好的方案) 五:建议使用封 ...

  6. 【转】Javascript 面向对象编程(一):封装

    原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html Javascript ...

  7. Javascript 面向对象编程(一):封装 by 阮一峰

    <Javascript高级程序设计(第二版)>(Professional JavaScript for Web Developers, 2nd Edition) 它们都是非常优秀的Java ...

  8. 转:javascript面向对象编程

    作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的Object模型很独特,和其他语言都不一样,初学 ...

  9. 探讨javascript面向对象编程

    (个人blog迁移文章.) 前言: 下面将探讨javascript面向对象编程的知识. 请不要刻意把javascript想成面向对象编程是理所当然的. javascript里面,对象思想不可少,但是不 ...

随机推荐

  1. 一次调用cloudera的的API和JSON想到的

    JSON的null字段 在我的项目中修改了YARN的资源池,到cloudera中就报错,查询还不报错,但是修改的时候,就报错,大致意思就是信息有异常,“包含了尖括号. 因为通过API+json交互,我 ...

  2. 五、Jmeter--关联(正则表达式)

    一.什么时候需要关联? 1. 服务器返回的动态变化而且对业务有影响的需要关联. 2. 回放脚本看是否正确,检查下脚本,是否有动态数据影响 3. 一大串字符串,每次请求参数是否有变化 4. 可以找开发问 ...

  3. 蓝桥杯 基础练习 BASIC-14 时间转换

    基础练习 时间转换   时间限制:1.0s   内存限制:512.0MB 问题描述 给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间 ...

  4. Solaris10上如何识别新增加的HDLM LUN

    先在磁盘阵列上将新加LUN映射给主机组,然后在光纤交换机上增加相关zone信息.以下是Solaris10上需要执行的操作步骤. 在Solaris10上重新扫描磁盘 -bash-3.2# cfgadm ...

  5. Compare and Swap(CAS)

    CAS(Compare and Swap)是个原子操作.拿到一个新值后,CAS将其与内存中的值进行比较,若内存中的值和这个值不一样,则将这个值写入内存,否则,不做操作.在Java的 java.util ...

  6. NT AUTHORITY\IUSR登录失败解决方法

    NT AUTHORITY\IUSR登录失败解决方法 1 今天打开网站时,突然报这个错误,平时都好好的 Cannot open database "aslkm" requested ...

  7. #关于 OneVsRestClassifier(LogisticRegression(太慢了,要用超过的机器)

    #关于 OneVsRestClassifier #注意以下代码中,有三个类 from sklearn import datasets X, y = datasets.make_classificati ...

  8. 关于EMGCU中的cvertern.dll无法找到的问题

    方法1:自己到EMgucv目录的bin里面拷贝x86文件夹到自己程序的debug目录 方法2:将这个X86目录添加到PATH变量,记得要注销,否则新添加的无法起作用,VS2010还显示无法找到.

  9. LAMP 3.1 mysql的root密码重置

    给mysql设置密码 /usr/local/mysql/bin/mysql -uroot 可以直接登录mysql 设置密码 /usr/local/mysql/bin/mysqladmin -uroot ...

  10. 更加省心的服务,IntentService的使用

    通过前两篇文章的学习,我们知道了服务的代码是默认运行在主线程里的,因此,如果要在服务里面执行耗时操作的代码,我们就需要开启一个子线程去处理这些代码.比如我们可以在 onStartCommand方法里面 ...