JavaScript脚本
对Object的extend是一个常用的功能。举一个例子,由于javascript 没有重载(overload),而且函数的参数类型是没有定义的,所以很多时候我们都传入一个对象来作为参数已方便控制。通常在函数里面给了参数对象的默认值,这个时候就需要通过extend来把传入的参数覆盖进默认参数,如:
代码:
1. giant.ui.imageshow = function(options) {
2. this.opts = $.extend({}, giant.ui.imageshow.defaults, options);
3. }
4. giant.ui.imageshow.defaults = {
5. id:"imageshow",
6. isAuto:true,
7. speed:3000
8. };
Jquery 的框架中给了一个extend工具:
jQuery.extend(target,obj1,[objN])
用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
用于简化继承。
Extend one object with one or more others, returning the original, modified, object.
This is a great utility for simple inheritance.
返回值--Object
参数
target (Object) : 待修改对象。
object1 (Object) : 待合并到第一个对象的对象。
objectN (Object) : (可选) 待合并到第一个对象的对象。
但框架中内置的这个extend有明显的缺陷,那就是不能继承对象中的对象。还是举一个例子来说明:
代码:
1. var obj1 = {},
2. var obj2={name:"karry",email:"karry@a.com",tel:{homeTel:"158255",officeTel:"02112585"}}
3. obj1 = $.extend({},obj1 ,obj2 );
结果obj1 只有name 和email属性,而有与tel本身就是一个对象,tel里面的homeTel和officeTel没有继承过去。
我的目标就是实现这种对子对象的子属性也一起复制(继承)的功能,不管他嵌套有多深。
首先我们看看这个方法的参数,有三个参数,target 目标对象,source 源对象,deep 是否复制(继承)对象中的对象,如果deep为true则继承所有,为false则和jquery的实现方式一样,不会继承子对象。
复制内容到剪贴板
代码:
Object.extend = function(target, /*optional*/source, /*optional*/deep) {}
我只把第一个参数target设为必选参数,而source 和deep都设为可选参数。这样就会遇到一个问题,如
相关文档:
这个广告也是比较典型的一个浮动广告,因为如果能找准右下角的位置,那么页面上任何一个位置你也都能找到了。
而这里我自己比较喜欢的是那个 magic_locus 函数,
它能使得你的动作步伐更加优美,通过一个很简单的公式就能达到在页面上凌波微步的效果,
而不是像某些网站那样很生硬地移动。
不多说了,直接看代码──
/ ......
//构造函数
function myClass(message)
{
//公有属性
this.myMessage = message;
//私有属性
var _separator = ' -';
var _myOwner = this;
//私有方法
function showMessage()
{
alert(_myOwner.myMessage);
}
//特权方法(也是公有方法)
this.appendToMessage = function(app ......
Chrome、IE和Firefox都纷纷在新版中增强了JavaScript引擎的执行效率,随着JavaScript效率在各大浏览器的显著提高,JavaScript可以做越来越多的事,本地文件API的引入将让很多有趣的功能成为现实。
日前,Mozilla向W3C提交了一个草案,旨在推出一个JavaScript API,让JavaScript 脚本直接操作本地文件,Firefox的最新浏 ......
43、JavaScript主页弹出窗口技巧
窗口中间弹出
<script>
window.open("http://www.cctv.com","","width=400,height=240,top="+(screen.availHeight-240)/2+",left="+(screen.availWidth-400)/2);
</script>
============
<html>
<head>
<script language="LiveScript">
fu ......
用Javascript检查Adobe PDF插件是否安装的代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; ......