最简单直接继承、扩展Object,或者克隆一个Object到能创建多个互不干扰实例的方法
2008-10-23 23:20
771 查看
<script>
// 最简单直接继承、扩展Object,或者克隆一个Object到能创建多个互不干扰实例的方法
// 不明白的地方请阅读《JavaScript高级应用与实践》(电子工业出版社.夏天著)
var o = {name: "xiatian"};
function jcore(o)
{
if(this == window)
return arguments.callee.prototype = o, new arguments.callee(o);
return this;
}
var b = jcore(o);
b.name = "QQ:11602011";
// 你会发现对b.name的改变没有改变o.name
alert([b.name, o.name]);
// 这个时候则改变了o.name的值了,因为jcore.prototype和o都是指向同一个对象的句柄
jcore.prototype.name = "good just fine";
alert([b.name, o.name]);
</script>
// 最简单直接继承、扩展Object,或者克隆一个Object到能创建多个互不干扰实例的方法
// 不明白的地方请阅读《JavaScript高级应用与实践》(电子工业出版社.夏天著)
var o = {name: "xiatian"};
function jcore(o)
{
if(this == window)
return arguments.callee.prototype = o, new arguments.callee(o);
return this;
}
var b = jcore(o);
b.name = "QQ:11602011";
// 你会发现对b.name的改变没有改变o.name
alert([b.name, o.name]);
// 这个时候则改变了o.name的值了,因为jcore.prototype和o都是指向同一个对象的句柄
jcore.prototype.name = "good just fine";
alert([b.name, o.name]);
</script>
相关文章推荐
- 最简单直接继承、扩展Object,或者克隆一个Object到能创建多个互不干扰实例的方法
- JS调用OC简单实例-传递一个或者多个参数给oc方法
- 【Java】【TIJ】实现一个类:不允许用构造方法来直接创建类实例(对象)
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- HTML 5 应用程序缓存(Application Cache)cache manifest 文件使用 html5 中创建manifest缓存以及更新方法 一个manifest文件会创建一份缓存,不同的manifest文件其缓存的内容是互不干扰的
- 创建一个Doctor类,姓名,有suggest方法和operation方法:输出“注意复诊”,“正在检查”,创建一个中医类,继承Doctor,创建一个西医类,继承Doctor.....
- object-c如何创建一个简单的类
- 使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之一
- 一个oracle 用户下面创建多个实例
- 使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之四
- C#基础:通过一个实例来学习IFormattable接口,扩展方法
- 一个简单直接的JOX实例
- Python将一个大文件按段落分隔为多个小文件的简单方法
- 让一个类只能在对上创建对象或者只能在栈上实例化
- 让程序只运行一个实例的简单实用的方法
- 一个简单的ASP.NET Forms 身份认证的实例方法
- StateMan:创建一个简单的SPA实例(一)
- MVC ----- 创建一个实例化控制器的方法
- 一个数据库创建多个实例
- python创建一个最简单http webserver服务器的方法