把对象使用JSON.stringify方法转变成json格式数据 ,然后在使用JSON.parse解析json字符串,这个看起来在做一些浪费时间的事情,但数据经过这样转变后,改变arr2的值,不会影响到arr的值。
var arr2 = JSON.parse(JSON.stringify(arr));
三、工厂模式
工厂模式:使用函数封装一个创建对象的接口,实例化对象。用于解决变量的污染。下面例子是工厂模式的一般写法;
function Factory(height){ // obj人类; var obj = {}; obj.name = "小明"; obj.height = height; obj.age = 20; obj.hobby = function(){ console.log("我喜欢篮球"); } return obj; } var newFactory = Factory("180cm"); console.log(newFactory.height); newFactory.hobby();
四、构造函数
- 构造函数类似于类的概念,在es6还没之前,都是使用构造函数,它与类相似,首字母大写(约定俗成的).
构造函数的原型:
对象是由自身和原型共同构成的;对象的原型是proto
构造函数是由自身和原型共同构成的;构造函数的原型prototype
属性写在构造函数里;方法写在原型上;
// 定义构造函数 (this) function Car(style1,color){ // obj.type = type; this.type = style1; this.color = color; this.action = function(){ console.log("跑"); } }
- 调用构造函数
// 实例化 关键字:new(把抽象类具体化,把类变成对象); var car1 = new Car("宝马","红色"); console.log(car1.type); car1.action();
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。