javascript示例代码

本文介绍了JavaScript中对象的创建及使用方法,包括直接赋值、使用JSON格式、定义复杂对象等,并详细讲解了如何利用prototype属性来声明对象的方法和属性,实现继承等功能。

在javascript中创建并使用对象

<script>
var person = new Object();
person.name 
= "lgx";
person.sex 
= "man";
person.age 
= 24;
person.sayhello 
= function ()
{
    alert(
"hello my name is"+this.name);
}
</script>

<body>
<script>

person.sayhello();
</script></body>


使用JSON(javascript Object Notation)

None.gif  <script type=text/javascript>
ExpandedBlockStart.gifContractedBlock.gif  
var person=dot.gif{
InBlock.gif   name:
"lgx",
InBlock.gif   sex:
"man",
InBlock.gif   age:
21,
ExpandedSubBlockStart.gifContractedSubBlock.gif   sayHello:
function(word)dot.gif{
InBlock.gif    alert(word
+this.name);
ExpandedSubBlockEnd.gif   }

ExpandedBlockEnd.gif  }

None.gif  
</script>

 

None.gif    <form id="Form1" method="post" runat="server">
None.gif            
<FONT face="宋体"></FONT>
ExpandedBlockStart.gifContractedBlock.gif            
<script type=text/javascript>dot.gif
InBlock.gif            //person.sayHello('haha:');
ExpandedBlockEnd.gif            
</script>
None.gif            
None.gif        
</form>

定义复杂对象

var myLibrary=
{
    location:
"my house",
    keywords:[
"row vegetables","turnip","tedium"],
    books:[
    {title:
"The title",
     authors:[
       {name:
"jim brow",age:18},
       {name:
"xxxx",age:13}
     ]
    }
    ]
}


使用prototype声明对象属性和方法

function MyObject(name,size)
{
    
this.name = name;
    
this.size = size;
}
MyObject.prototype.tellsize 
= function()
{
    alert(
"size of"+this.name+"is"+this.size);
}
var myObject = new MyObject("tiddles","7.5 meters");
myObject.tellsize();

需要注意代码执行顺序,只有在构造函数声明之后才能引用其prototype属性,而且
对象从prototype所获得的属性和方法,必须声明在调用构造函数创建对象之前。

用prorotype实现继承

function Vehicle()
{
}
Vehicle.prototype.wheelCount 
=4;
Vehicle.prototype.curbWeightInPounds 
= 4000;
Vehicle.prototype.refuel 
= function()
{
    
return "Refueling Vehicle with regular 87 octane gasoline";
}
Vehicle.prototype.mainTasks 
= function()
{
    
return "Driving to  work ,school ,and the grocery store";
}
function SportsCar()
{
}
SportsCar.prototype 
= new Vehicle();
SportsCar.prototype.curbWeightInPounds 
= 3000;
SportsCar.prototype.refuel 
= function ()
{
    
return "Refueling SportsCar with premium 94 octane gasoline";
}
SportsCar.prototype.mainTasks 
= function(){
    
return "Spirited driving ,looking good ,driving to the beach";
}
function discribe(vehicle)
{
    
var str = "";
    str 
= "\n\nNumber of wheels:"+ vehicle.wheelCount;
    str 
+= "    Crub Weight: "+vehicle.curbWeightInPounds;
    str 
+= "\n\n Refuel Method:"+vehicle.refuel();
    str 
+= "\n\n Main Tasks:" + vehicle.mainTasks();
    document.getElementById(
"Info").innerText+=str;
}
function createVehicle()
{
    
var vehicle = new Vehicle();
    discribe(vehicle);
}
function createSportsCar()
{
    
var sportCar = new SportsCar();
    discribe(sportCar);
}



对象反射
检测一个对象是否有某个属性

if(typeof(MyObject.somePrototype)!="undefined")

检测对象某个属性的类型

None.gifif(myObj instanceof Array)

设置剪切板内容

copyLink:function()
    {
        
var link = window.location.href;
        
var endIndex = link.lastIndexOf("/")+1;
        
var host = link.substring(0,endIndex)+"bbs_big.aspx?topicId="+this.NewShowingTopicId;
        window.clipboardData.setData(
"Text",host);
        alert(
"已将链接["+host+"]复制到剪切板,粘贴即可!");
    }

get object position

 

Number.prototype.NaN0=function(){return isNaN(this)?0:this;}
function getPosition(e){
    
var left = 0;
    
var top  = 0;
    
while (e.offsetParent){
        left 
+= e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
        top  
+= e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
        e     
= e.offsetParent;
    }
    left 
+= e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
    top  
+= e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
    
return {x:left, y:top};
}


 将函数作为一个对象的方法调用

Function.apply()
function.apply(thisobj,args)

thisobj:调用函数的对象,在函数主体中,thisobj是关键字this的值;
args:一个数组,他的值是要传递给function的参数值
------------------
将函数作为对象的方法调用
Function.call()
function.call(thisobj,argdot.gif.)
thisobj:调用function的对象,在函数主体中,是this关键字的值;
args:任意多个参数,这些参数传递给函数function

转载于:https://www.cnblogs.com/lgx-net/archive/2006/08/24/485785.html

JavaScript电子书,包括了JavaScript的大部分知识,可以帮助读者快速入门。内容如下: 第1章 JavaScript语言概述 1.1 JavaScript是什么 1.1.1 JavaScript简史 1.1.2 JavaScript有何特点 1.2 JavaScript能做什么 1.2.1 表单数据合法性验证 1.2.2 页面特效 1.2.3 交互式菜单 1.2.4 动态页面 1.2.5 数值计算 1.3 JavaScript编程起步 1.3.1 “Hello World!”程序 1.3.2 选择JavaScript脚本编辑器 1.4 如何引入JavaScript脚本代码 1.4.1 通过与标记对引入 1.4.2 通过标记的src属性引入 1.4.3 通过JavaScript伪URL引入 1.4.4 通过HTML文档事件处理程序引入 1.5 嵌入JavaScript脚本代码的位置 1.5.1 在与标记对之间放置 1.5.2 在与标记对之间放置 1.5.3 在两个标记对之间混合放置 1.6 选择合适的浏览器 1.7 处理不支持JavaScript脚本的情况 1.7.1 使用标记对直接屏蔽法 1.7.2 使用和标记对给出提示信息 1.8 JavaScript的实现基础 1.8.1 ECMAScript 1.8.2 DOM 1.8.3 BOM 1.9 客户端与服务器端脚本 1.10 JavaScript与JScript、 VBScript 1.11 JavaScript与Java、Java applet 1.12 JavaScript的未来如何 1.13 本章小结 第2章 JavaScript语言入门 2.1 编程准备 2.1.1 编程术语 2.1.2 脚本执行顺序 2.1.3 大小写敏感 2.1.4 空白字符 2.1.5 分号 2.1.6 块 2.2 数值类型 2.2.1 整型和浮点数值 2.2.2 八进制和十六进制 2.3 变量 2.3.1 变量标识符 2.3.2 变量申明 2.3.3 变量作用域 2.4 弱类型 2.5 基本数据类型 2.5.1 Number型 2.5.2 String型 2.5.3 Boolean型 2.5.4 Undefined型 2.5.5 Null型 2.5.6 Function型 2.6 组合类型 2.6.1 Array型 2.6.2 Object型 2.7 运算符 2.7.1 赋值运算符 2.7.2 基本数学运算符 2.7.3 位运算符 2.7.4 位移运算符 2.7.5 自加和自减 2.7.6 比较运算符 2.7.7 逻辑运算符 2.7.8 逗号运算符 2.7.9 空运算符 2.7.10 ?...:运算符 2.7.11 对象运算符 2.7.12 typeof运算符 2.7.13 运算符优先级 2.8 核心语句 2.8.1 基本处理流程 2.8.2 if条件假设语句 2.8.3 switch流程控制语句 2.8.4 for循环语句 2.8.5 while和do-while循环语句 2.8.6 使用break和continue进行循坏控制 2.8.7 with对象操作语句 2.8.8 使用for…in进行对象循坏 2.8.9 含标签的语句 2.9 函数 2.9.1 函数的基本组成 2.9.2 全局函数与局部函数 2.9.3 作为对象的函数 2.9.4 函数递归调用 2.9.5 语言注释语句 2.9.6 函数应用注意事项 2.10 本章小结 第3章 JavaScript事件处理 3.1 什么是事件 3.2 HTML文档事件 3.2.1 事件捆绑 3.2.2 浏览器事件 3.2.3 HTML元素事件 3.2.4 IE扩展的事件 3.3 JavaScript如何处理事件 3.3.1 匿名函数 3.3.2 显式声明 3.3.3 手工触发 3.4 事件处理器的返回值 3.5 事件处理器设置的灵活性 3.6 现代事件模型与Event对象 3.7 IE4中的Event对象 3.7.1 对象属性 3.7.2 事件上溯 3.7.3 阻止事件上溯 3.7.4 事件改向 3.8 NN4中的Event对象 3.8.1 对象属性 3.8.2 事件捕获 3.8.3 关闭事件捕获 3.8.4 事件传递 3.9 DOM的解决之道
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值