`
touchmm
  • 浏览: 1037692 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

最简单直接继承、扩展Object,或者克隆一个Object到能创建多个互不干扰实例的方法

阅读更多
  1. <script>
  2. //最简单直接继承、扩展Object,或者克隆一个Object到能创建多个互不干扰实例的方法
  3. // 不明白的地方请阅读《JavaScript高级应用与实践》(电子工业出版社.夏天著)
  4. varo={name:"xiatian"};
  5. functionjcore(o)
  6. {
  7. if(this==window)
  8. returnarguments.callee.prototype=o,newarguments.callee(o);
  9. returnthis;
  10. }
  11. varb=jcore(o);
  12. b.name="QQ:11602011";
  13. //你会发现对b.name的改变没有改变o.name
  14. alert([b.name,o.name]);
  15. //这个时候则改变了o.name的值了,因为jcore.prototype和o都是指向同一个对象的句柄
  16. jcore.prototype.name="goodjustfine";
  17. alert([b.name,o.name]);
  18. </script>
分享到:
评论

相关推荐

    [创建型模式]设计模之原型模式(Prototype Pattern)

    客户端可以创建一个原型对象,然后通过调用`clone()`方法创建一个新的对象。 **工具应用**: 在实际开发中,很多框架和库也运用了原型模式。比如,Spring框架中的Bean可以通过配置`prototype`作用范围,实现每次...

    实验六:原型模式.rar

    在实验中,我们可以创建一个基础原型类,比如`Prototype`,并让所有需要克隆的类继承它。然后,每个子类都需要实现`clone()`方法。在实际应用中,可能还需要考虑序列化和反序列化来实现更复杂的深拷贝。 4. **应用...

    JavaScript 深层克隆对象详解及实例

    简单的赋值操作只会复制对象的引用,即多个变量指向同一个对象。而深层克隆对象则是创建一个全新的对象,将原对象的所有层级的属性复制到新对象中,包括引用类型的属性。接下来,我将详细介绍JavaScript中浅层克隆与...

    详解JAVA 原型模式

    在Java中,原型模式通常涉及到对象的克隆操作,即创建一个对象的副本。 **基本概念** - **原型(Prototype)**: 定义了克隆接口,规定了如何复制自己。 - **具体原型(Concrete Prototype)**: 实现了原型接口,...

    java面试大全

    匿名内部类不能显式地继承其他类,但可以实现一个或多个接口。 **29. super.getClass()方法调用** `super.getClass()`用于获取当前类的父类的信息。 **30. String是最基本的数据类型吗?** 不是。`String`是对象,...

    php实现对象克隆的方法

    对象克隆,是面向对象编程中的一项技术,用于创建一个与原有对象完全相同的副本对象,这个过程被称为对象的复制或克隆。在PHP中,克隆分为浅克隆(浅拷贝)和深克隆(深拷贝)。 2. 浅克隆: 浅克隆指的是复制对象...

    原型模式Demo

    **原型模式(Prototype Pattern)**是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而不是通过创建新实例。在某些情况下,创建新对象的过程可能非常复杂或者资源密集,而通过复制已存在的对象则...

    prototype-demo.zip

    它提供了一个创建对象的最佳实践,避免了每次创建新对象时都需重新初始化所有属性的过程,提高了性能。 2. **深复制与浅复制**: - **浅复制**:浅复制仅仅复制对象的引用,而非对象本身。这意味着如果原对象的某个...

    前端开源库-lutils-clone

    `lutils-clone`是一个专门用于JavaScript对象克隆的开源库,它提供了一个高效、可靠且递归的解决方案,确保深拷贝过程中原始对象与克隆对象之间不会相互影响。 JavaScript的内置`Object.assign()`方法可以实现浅...

    java面试宝典

    finalize是Object类的一个方法,在垃圾收集器执行时会调用被回收对象的finalize()方法。 10. **OverLoad与Override的区别**:Overload是方法重载,Override是方法重写。 11. **Collection与Collections的区别**:...

    U10316044_HW5_15_10:(修改MyStack类)重写代码清单11.10中的MyStack类来执行列表字段的深拷贝

    1. 使用`java.util.ArrayList`或`java.util.LinkedList`的`clone()`方法:如果列表是`ArrayList`或`LinkedList`的实例,可以调用`clone()`方法,它会返回一个列表的浅拷贝,但对于对象元素,它会递归地调用每个元素...

    deep-copy-js:javascript的递归深拷贝、克隆和浅拷贝函数

    如果它是复杂类型(如对象或数组),则会创建一个新的实例,并对其中的每个元素进行递归拷贝。这样可以确保即使在对象嵌套多层的情况下,也能正确地创建一个独立的副本。 深拷贝在很多场景下都非常有用,比如在组件...

Global site tag (gtag.js) - Google Analytics