//继承
//1、对象冒充
/* function ClassA(sColor) {
this.color = sColor;
this.sayColor = function () {
alert(this.color);
};
}
function ClassB(sColor, sName) {
this.newMethod = ClassA;
this.newMethod(sColor);
delete this.newMethod;
this.name = sName;
this.sayName = function () {
alert(this.name);
};
}
var objA = new ClassA("blue");
var objB = new ClassB("red", "John");
objA.sayColor(); //输出 "blue"
objB.sayColor(); //输出 "red"
objB.sayName(); //输出 "John" */
//2、call方法,A.call(B,...);A,表示父类,B,表示子类。第二个参数后表示传给父类的参数
//2.1、给一个对象加方法
/* function sss(aa){
alert(aa);
}
var obj=new Object();
obj.obj111="23545";
sss.call(obj,"yellow");
*/
//2.2、对象继承对象
/* function ClassA(sColor) {
this.color = sColor;
this.sayColor = function () {
alert(this.color);
};
}
function ClassB(sColor, sName) {
ClassA.call(this, sColor);
this.name = sName;
this.sayName = function () {
alert(this.name);
};
}
var clsB=new ClassB("blue","adfadf");
clsB.sayColor(); */
//3、apply方法,A.apply(B,...);A,表示父类,B,表示子类。第二个参数后表示传给父类的参数,
//参数为array类型
//3.1、对象添加方法
/* function aaa(aaa){
alert("aaaa"+aaa);
}
var obj=new Object();
obj.name="2343";
aaa.apply(obj,new Array("---bbb")); */
//3.2、对象继承对象
/* function ClassA(name){
this.name=name;
this.showName=function(){
alert(this.name);
};
}
function ClassB(name){
this.nameb=name;
this.aaa=ClassA;
this.aaa.apply(this,new Array(this.nameb));
this.showName1=function(){
alert(this.nameb+"...bbbbb");
};
}
var bbb=new ClassB("ccc");
bbb.showName();
bbb.showName1(); */
js面向对象程序设置——继承机制
时间: 2024-09-30 20:05:44
js面向对象程序设置——继承机制的相关文章
js面向对象程序设置——创建对象
<script type="text/javascript"> //工厂方式 //1.原始方式 /* var objCar=new Object(); objCar.name="劳斯莱斯"; objCar.color="blue"; objCar.showColor = function() { alert(this.colo
JS高级程序设置笔记(六)
22.1.2 作用域安全的构造函数 作用域安全的构造函数在进行任何更改前,首先确认this 对象是正确类型的实例.如果不是,那 么会创建新的实例并返回. 多个程序员在同一个页面上写JavaScript 代码的环境中,作用域安全构造函数就很有用了.届时, 对全局对象意外的更改可能会导致一些常常难以追踪的错误.除非你单纯基于构造函数窃取来实现继 承,推荐作用域安全的构造函数作为最佳实践. 22.1.3 惰性载入函数 惰性载入表示函数执行的分支仅会发生一次.有两种实现惰性载入的方式,第一种就是在函数被
JS高级程序设置笔记(二)
5.4 RegExp类型 用这个类来表示正则表达式. var expression = /pattern/flags; pattern部分是任何简单的或者复杂的正则:每一个正则都有一个或者多个标志. 正则表达式匹配模式下支持下列3个标示 1:g 全局模式 2:i 不区分大小写 3:m 表示多行 5.4.1RegExp实例属性: 1:global:布尔值,表示是否设置了g标志. 2:ignoreCase:布尔值:表示是否设置了i标志 3:lastIndex:整数,表示开始搜索下一个匹配的字符位置,
JS中的原型继承机制
转载 http://blog.csdn.net/niuyongjie/article/details/4810835 在学习JS的面向对象过程中,一直对constructor与prototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下: 我们都知道,在JS中有一个function的东西.一般人们叫它函数.比如下面的代码 js代码: [javascript] view plaincopy function Person(name) { alert(name); } Perso
JS高级程序设置笔记(五)
13章:事件 JavaScript与Html之间的交互,是通过事件实现的.可以使用侦听器(或者处理程序)来预定事件. 13.1事件流: 什么是事件流:事件流描述的是从页面中接收事件的顺序. 13.1.1事件冒泡 什么是事件冒泡:可以用一个形象的比喻来描述.小鱼吐泡泡,小鱼在水里,泡泡会从水的最底部一直到水面上结束.事件冒泡和这个意思相近,IE的事件流叫做事件冒泡,是从最具体的元素开始,一直延伸到最顶层的那个结构.意思就是说,比如你创建了一个鼠标点击事件,当你点击这个元素的时候,浏览器会认为你点击
JS高级程序设置笔记(四)
11.DOM拓展 11.1选择符API: SelectorsAPI的核心两个方法,:querySelector()和querySlelctorAll(),在兼容的浏览器中,可以通过Domcument及Element类型的实例可以调用他们. 11.1.1 querySelector()方法: querySelector()方法接收一个css选择符,返回与该匹配的第一个元素,如果没有匹配到就返回null. 通过document调用querySelector()方法会在文档元素的范围内查找到匹配的元素
JS高级程序设置笔记(一)
第一章 1.1 ECMA:欧洲计算机制造商会 ISO/IEC:国标标准话组织和国际电工委员会 1.2JavaScript实现 一个完整的JavaScript实现应该由以下三个不同的部分组成 (1)核心(ECMAScript) (2)文档对象模型(DOM) (3)浏览器对象模型(BOM) 1.2.1 ECMAScript 组成部分:语法.类型.语句.关键字.保留字.操作符.对象. 1.2.2 文档对象模型(DOM) 文档对象模型是针对XML但经过拓展用于HTML的应用程序编程接口(API Ap
JS高级程序设置笔记(三)
8:BOM(浏览器对象模型) BOM的核心是window,它是一个浏览器的实例 在浏览器中,window具有双重角色,它既是用过JS访问浏览器的一个接口,又是EMCA规定的Global对象. 定义全局变量和定义在window上的属性还是有区别的: 全局变量是不能直接使用delete删除(通过var创建的属性有个一个ConfigureAble特性,他的默认值是false所以不能直接删除) 定义在window对象上的属性是可以直接用delete删除的. var num=10;//定义的全局变量的属性
JavaScript 对象的原型扩展(JS面向对象中的继承)
<script type="text/javascript"> function person(name, age) { this._name = name; this._age = age; var _self = this; this.say = function() { console.log(this._name + '-' + this._age); setTimeout(function() { console.log(_self._name); }, 2000