<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>javascript.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<script type="text/javascript">
//工厂模式创建对象
function showColor(){
alert(this.color);
}
//工厂模式创建对象
function createCar(color){
var tempCar = new Object();
tempCar.color = color;
tempCar.showColor = showColor;
return tempCar;
}
//构造函数方式
function Mycar(color){
this.color=color;
this.showColor = function(){
alert(this.color);
};
}
//混合的构造函数/原型方式
function Jeep(color){
this.color=color;
}
//混合的构造函数/原型方式
Jeep.prototype.showColor = function(){
alert(this.color);
};
//动态原型方式
function JeepCar(color){
this.color = color;
//typeof JeepCar._init返回undefined
if(typeof JeepCar._init == "undefined"){
JeepCar.prototype.showColor = function(){
alert(this.color);
};
//typeof JeepCar._init返回Boolean
JeepCar._init = true;
alert("create");
}
}
//创建一个StringBuffer类处理字符串
function StringBuffer(){
this._string = new Array;
}
StringBuffer.prototype.append = function(date){
this._string.push(date);
}
StringBuffer.prototype.toString = function(){
return this._string.join("");
}
//创建新方法
//可以给一些本地对象创建新的方法
Number.prototype.toHexString = function(){
return this.toString(16);//转换成16进制的
}
//创建一个方法,查找一个对角在数组中的位置
//这样在数组就可以用这个方法了
Array.prototype.indexOf = function(item){
for(var i=0;i<this.length;i++){
if(this[i]==item){
return i;
}
}
return -1;
}
//重写对象已经存在的方法
//重写对象已经有的方法的时候可以先让原来的方法保存到另一个引用里面
Function.prototype.toStringFor = Function.prototype.toString;
Function.prototype.toString = function(){
return this.toStringFor();
}
window.onload = function(){
//创建Object和String对象
var object = new Object();
var oString = new String();
//也可以不用()直接写成new Object;
//对象的废除
oString = null;
//本地对象
//javascript的本地对象有Object,Function,Array,Date,String,Boolean
//Number,RegExp,Error,等一些对象(还有)
var oArray = new Array();
oArray[0]="langhua";
oArray[1]="boot";
oArray[2]="text";
//Array还有其它构造方法
//var oArray = new Array(10);
//var oArray = new Array("langhua","boot","text");
//var oArray = ["langhua","boot","txt"];
//alert(oArray.length);
//alert(oArray.toString());//output langhua,boot,text
//alert(oArray.valueOf());//output langhua,boot,text
//Array的方法 join()返回String字符串
alert(oArray.join(".."));//output langhua..boot..text
//String也可以用split("分割正则表达示")返回一个数组
//也可以直接split("")这样出来的就是每个字符
//concat()方法 连结字符串,也可以连结数组
var newArray = oArray.concat(oArray);
//alert(newArray); output langhua,boot.text,langhua,boot,text
//slice()方法
var array_1 = newArray.slice(1); //从数组的第一位到最后一件(数组的首位是0)
var array_2 = newArray.slice(1,3); //从数组的第一位到第二位,左闭右开(数组的首位是0)
//alert(array_1); output boot.text,langhua,boot,text
//alert(array_2); output boot.text
//push()和pop()方法模仿Stack
var stack = new Array;
stack.push("langhua1");
stack.push("langhua2");
stack.push("langhua3");
//alert(stack);
var item = stack.pop();
//alert(stack);
//push()和shift()方法模仿队列 shift()删数数组下标为0的元素,并使下标为1的元素下标为0
stack.shift();
//alert(stack);
//unshift("");
stack.unshift("unshift"); //使数组下标为0的元素改变为传过来的值
//alert(stack);
//reverse()对数组进行反转,sort()对数进行排序
var date = new Date();
//alert(date);
//内置对象
//Math,global对象
//global有很多方法,如isNaN(),isFinite,parseInt(),parseFloat();
//encodeURI(),encodeURIComponent();decodeURI(),decodeURIComponent();eval();
//alert(eval(1+2+3));
//宿主对象
//工厂模式创建对象
//但是工厂模式的方法要写在外面,这样就不像对象了
var car = createCar("red");
car.showColor();
//构造函数方式
//这种方式会重复才生函数
var mycar = new Mycar("blue");//注意是new来创建
mycar.showColor();
//混合的构造函数/原型方式
//这种方式书上说非常的好,就用这样比较好...
//书上说好就好吧,我没有意见的
var myjeep_1 = new Jeep("blank1");
myjeep_1.showColor();
alert(myjeep_1.color);
var myjeep_2 = new Jeep("blank2");
myjeep_2.showColor();
alert(myjeep_2.color);
//还有一种用叫动态原型方式
var JeepCars1 = new JeepCar("Jeepcar1");
JeepCars1.showColor();
var JeepCars2 = new JeepCar("Jeepcar2");
JeepCars2.showColor();
var buff = new StringBuffer();
buff.append("la");
buff.append("ha");
alert(buff.toString());
//本地对象的新方法的使用
var numb = 12;
alert(numb.toHexString());
//重写对象已经存在的方法
//把内容给打出来
alert(createCar.toString());
alert(window.onload.toString());
}
</script>
<body>
</body>
</html>
分享到:
相关推荐
JavaScript对象模型
JavaScript中的对象 ECMA262规范一直在强调,“ECMAScript是一种基于对 象(Object—Based)的语言,而不是传统的面向对象(Object— Oriented)的语言”。相信绝大多数人不会清楚这句话是什么意 思。我想我们可以把它...
介绍javascript的对象模型知识,如何建立对象。如何执行对象~~
javaScript对象模型与事件处理资料.pdf
javaScript对象模型与事件处理借鉴.pdf
PDF内容:1.基本类型;2.内置数据类型;3.数据类型实现模型;4.简单数值类型的对象化;5.Prototype继承6. .......
JavaScript 对象模型-执行模型分析
Javascript对象模型。 1Kb压缩 价值转换 值格式 值类型验证 价值内容验证(必填,自定义规则) 默认值 虚拟财产 现场直播活动 正确的文档^^ 体面的测试^^ 安装 安装npm软件包 npm install @jaysalvat/...
主要简单介绍了javascript对象模型和function对象,以及相关的示例代码,非常实用,需要的小伙伴参考下
僵化 一个简单JavaScript对象模型。 Klassified提供了一个基类object ,可以使用其subclass类类方法对其进行subclass类化,如以下示例所示: var animal = object . subclass ( function ( that , my ) { my . ...
使用SharePoint JavaScript对象模型(JSOM)对SharePoint加载项中的网站属性,列表和列表项执行创建,读取,更新和删除操作。 适用于 SharePoint Online和本地SharePoint 2013及更高版本 先决条件 此示例需要满
用于FHIR标准的Typescript / Javascript对象模型Model遵循FHIR R4规范。 定义是基于io-ts的接口。 有关更多详细信息,请参见。 这意味着您可以在运行时检查类型。 安装 npm i -S @ahryman40k/ts-fhir-types 或者 ...
Javascript文档对象模型(DOM)
JavaScript的基础资料(语法,DOM对象模型等)JavaScript的基础资料(语法,DOM对象模型等)
Gawk使用ES2015代理包装JavaScript对象和数组,使其可观察。 锁定JavaScript对象(或数组)后,您可以侦听更改,包括深度嵌套的更改。 只有对象和数组可以被遮盖。 所有其他类型都通过。 变形的对象和数组可以像...
为了能够操纵浏览器和文档,JavaScript使用分层的父对象和子对象,这就是“文档对象模型”。这些对象的组织类似一个树型结构,并表示一个Web文档的所有内容和组件。 注意:”文档对象模型”不是JavaScript语言的一...