JS合并对象以及jquery扩展方法总结

2019-08-01  本文已影响0人  _鸭鸭

JS合并对象的方法

JQuery方法jQuery.extend()的使用
1、 给jq的实例扩展多个方法

如:var fun = {
    toHide:function(){
        jQuery(this).hide();
    },
    toRed:function(){
        jQuery(this).css({color:'red'});
    }
 };
jQuery.fn.extend(fun);
// jQuery('div').toHide();
jQuery('div').toRed();

2、给jq本身命名空间加方法:

var foo = {
    toDou:function(num){
        return num<10?'0'+num:''+num;
    },
   arnd:function(m,n){
        return Math.floor(m+Math.random()*(n-m));
    }
};
jQuery.extend(foo);
console.log(jQuery.toDou(jQuery.arnd(0,10)));

为扩展jQuery类本身,为类添加新的方法。

3、扩展对象

浅拷贝拷贝的是内存地址,这是通过a或者b改变属性,c中的属性也会改变。深拷贝会把引用类型的属性复制成一个副本,不会与之前的引用共用同一个对象。

ES6以后的实现方法
1、Object.assgin(target, ...sources)
参数:
target :目标对象
sources : 源对象
用于将所有可枚举属性的值从一个或多个对象赋值到目标对象。然后它将返回目标对象。
*如果对象的属性值是简单类型,得到的新对象为‘深拷贝’,如果属性值为对象或其他引用类型,那对于这个对象而言其他都是浅拷贝。

const object1 = {
name:'yaya',
age:18,
color:'red'
};
const object2 = Object.assign({name: 'yayaxiaotianshi',sex:'female'}, object1);
console.log(object2.name, object2.sex);
// expected output: 'yaya' female

2、ES7的对象的拓展运算和ES6的结构赋值
Object3={…object1,…object}

添加实例的方法

1、jQuery.fn的方法的使用
jQuery.fn是指jquery的命名空间,加上fn上的方法和属性,会对jquery每一个实例有效。

JQuery.fn=jQuery.prototype={
    Init : function(selector,context){
  }
}

2、 jQuery.fn.extend(object)方法的使用
参数:
Object:一个对象用来合并JQuery的原型。
对jQuery.prototype进行扩展,就是可以为jQuery类添加成员函数。jQuery.fn.extend()方法继承了jQuery原型(jQuery.fn)对象,以提供jQuery原型新的方法,可以链式调用jQuery()函数。

Code:
jQuery.fn. check = function() {}
jQuery.fn.extend({
  check: function() {
    return this.each(function() { this.checked = true; });
  },
  uncheck: function() {
    return this.each(function() { this.checked = false; });
  }
});

//上面两种方法效果是一样的

上一篇下一篇

猜你喜欢

热点阅读