自定义extend方法

最近计划封装一个原生的js控件,突然发现习惯了jquery的extend方法,使用原生JavaScript竟无从下手。所以只能自己尝试写一个类似jquery
extend功能的方法了。

核心代码如下:

function () {
        var _isObject,
_extend;
        _isObject = function (o)
{ return Object.prototype.toString.call(o) === ‘[object Object]‘; }
//判断是否为Object
        _extend = function
self(target, source)
{
            var
property;
           
for (property in source)
{
               
if (_isObject(target[property]) && _isObject(source[property]))
{
                   
self(target[property],
source[property]);//递归
               
}
               
target[property] =
source[property];
           
}
       
}
        var arg =
arguments;
        if (arg.length <= 1)
{
           
return;//直接返回
       
}
        else
{
            var
i;
            for (i
= 1; i < arg.length; i++)
{
               
_extend(arg[0],
arg[i]);
           
}
        }
    }

才学疏浅,如有错误,请不吝指正。

自定义extend方法,布布扣,bubuko.com

时间: 2024-08-24 09:41:42

自定义extend方法的相关文章

Jquery自定义扩展方法

jquery是一款流行的JS框架,自定义JS方法,封装到Jquery中,调用起来也挺方便的,怎么写Jquery扩展方法那,网上翻阅了一部分代码,其实也挺简单的: 方式一: (jQuery.fn.setApDiv=function () { //apDiv浮动层显示位置居中控制 var wheight=$(window).height(); var wwidth=$(window).width(); var apHeight=wheight-$("#apDiv").height(); v

理解一下jQuery.extend()和jQuery.fn.extend()方法

为了方便用户创建插件,jquery提供了jQuery.extend()和jQuery.fn.extend()方法.1. jQuery.extend() 方法有一个重载. jQuery.extend(object) ,一个参数的用于扩展jQuery类本身,也就是用来在jQuery类/命名空间上增加新函数,或者叫静态方法,例如jQuery内置的 ajax方法都是用 jQuery.ajax()这样调用的,有点像 "类名.方法名" 静态方法的调用方式.下面我们也来写个jQuery.extend

jquery的2.0.3版本源码系列(3):285-348行,extend方法详解

目录 1 . jquery extend的基本使用 通过285行的源码 jQuery.extend = jQuery.fn.extend = function() { ,extend方法要么是直接挂在到jQuery的静态方法,要么是挂载到fn上其实就是原型上(参考283行的赋值操作)的实例方法.extend方法可以传一个对象,类似于插件的方式,也可以传多个对象进行拷贝. <script src="js/jquery-2.0.3.js"></script> <

Jquery自定义扩展方法(二)--HTML日历控件

一.概述 研究了上节的Jquery自定义扩展方法,自己一直想做用jquery写一个小的插件,工作中也用到了用JQuery的日历插件,自己琢磨着去造个轮子--HTML5手机网页日历控件,废话不多说,先看看效果图吧 效果图很简单,代码封装在JQuery中,网页端只需要要调用即可: 二.Jquery自定义实体对象 Jquery可以自定义函数function,有没有可以定义实体对象,里面封装方法那?查询了一下资料发现,是可以的,不仅能够封装属性,还可以写自己的方法,调用模板代码如下: $.Calende

jQuery中extend方法

$.extend 用一个或多个其他对象来扩展一个对象,返回被扩展的对象. 参数类型1:只传入一个对象就是对jQuery的工具方法进行扩展. 1 $(function(){ 2 $.extend({ 3 console: function(sMsg){ 4 console.log(sMsg); 5 } 6 }); 7 $.console('jQuery');// jQuery 8 }); 参数类型2:传入多个对象就是对第一个对象进行扩展. 1 $(function(){ 2 var oTarget

jQuery.extend()方法和jQuery.fn.extend()方法

jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> <html> <head> <title></title> <script src='jquery-1.7.1.js'></script> <

sublime-text 自定义快捷键方法

最近一直使用sublime进行项目的开发.经常忘记一些常用的快捷键.特别头疼. 有时候还会感觉有些快捷键用着不是很顺手.于是就自己捣鼓着如何来自己定义自己的快捷键.. 其实每个人的习惯都有所不同,所以我不喜欢看网上的那些所谓的快捷键大全什么的..你看一遍,你能记住多少? 首先要说明下在哪里定义我们的快捷键. 打开 sublime text   --> preferences 我们能够看到两个选项. Key  Bindings -Default    //这个表示系统默认的快捷键. Key Bin

cocos2dx 关于lua 绑定的环境配置官方文档翻译与 将自定义的方法绑定到lua的的方法

//网上有好多写怎样讲自定义的方法绑定到lua的文章,其中都只对环境配置做了简单的介绍,看到有的帖子写在绑定中遇到了各种各样的error,大部分是由于环境配置//不正确导致的,以下是官方的文档有标准的说明,所有的开发引擎都会有自己的说明文档.下面就是cocos2dx 官方文档 //怎样使用 bindings-generator How to Use bindings-generator ================== //windows 环境下 On Windows: ----------

OC设置器与访问器以及自定义初始化方法

1.Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { NSString * _name; NSString * _sex; NSInteger  _age; CGFloat    _weight; CGFloat    _height; } - (void)sayhi; //设置器   专门给一个实例变量赋值的方法 - (void)setName:(NSString *)name; - (void