JS实现extend函数

 

//写一个函数,该函数的名称是extend,有两个参数:destination,source

1、如果destination和source都是json对象,完成从source到destination的复制
2、如果destination是一个函数,source是一个json对象,则把source中的每一个key,value对赋值给destination的prototype
3、如果destination,source都是函数,则把source的prototype中的内容赋值给destination的prototype

 1 var extend = function(destination,source){
 2     if(typeof destination == "object"){//destination是一个json对象
 3         if(typeof source == "object"){//source是一个json对象
 4             //把source中的每一个key,value值赋值给destination
 5             for(var i in source){
 6                 destination[i] = source[i];
 7             }
 8         }
 9     }
10
11     if(typeof destination == "function"){
12         if(typeof source == "object"){
13             for(var i in source){
14                 destination.prototype[i] = source[i];
15             }
16         }
17         if(typeof source == "function"){
18             destination.prototype = source.prototype;
19         }
20     }
21     return destination;
22 }
时间: 2024-10-20 06:19:14

JS实现extend函数的相关文章

$.extend()和$.fn.extend()函数用法简单介绍

$.extend()和$.fn.extend()函数用法简单介绍:标题中的两个方法在jQuery插件开发中非常的重要,下面通过简单的代码实例介绍一下它们的用法.本章节不会介绍它的原理,而是只给出它们的作用是什么,能够做什么事情.jQuery.extend()可以为jQuery类添加新的方法,类似于c#或者java中的静态方法.jQuery.fn.extend()可以为jQuery的对象实例添加新的方法.代码实例: <!DOCTYPE html> <html> <head>

jQuery插件开发及jQuery.extend函数详解和jQuery.fn与jQuery.prototype区别

一.jQuery插件开发分为两种:  1.类级别: 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.extend(object); $.extend({ add:function(a,b){return a+b;} , minus:function(a,b){return a-b;} }); var i = $.add(3,2); var j = $.minus(3,2); 2.对象级别: 对

【前端小小白的学习之路】----&gt;用JS编写一个函数,返回数组中重复出现过的元素

用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: var arr = [1, 2, 3, 1, 2, 3, 4, 5]; var getRepeat = function (arr) { var obj = {}; for (var i = 0, len = arr.length; i < len; i++) { if (obj[arr[i]] == undefined) { obj[arr[i]] = 1; } else { obj[arr[i]]++; } } for (var

js中一些函数(一)【丫头, 今天去哪儿了呢,好些没有】

Math.Rondom()   ==>  0 到 1 之间的小数 Math.floor(x)  ==>  小于或者等于 x 的整数(即转换成整数后是不能比 x 大的整数) setInterval(hanshu,1000)  ==>  意思为调用下面的 hanshu(), 间隔时间为 1000 ms(毫秒) js中一些函数(一)[丫头, 今天去哪儿了呢,好些没有],码迷,mamicode.com

让js中的函数只有一次有效调用的三种常用方法

如何让js中的函数只被有效执行一次,请看下面的三种常用方法. 1. <script> window.onload = function () { function once(fn) { var result; return function() { if(fn) { result = fn.apply(this, arguments); fn = null; } return result; }; } var callOnce = once(function() { console.log('

JS多个函数之间传递参数问题

JS多个函数之间传递参数的一个重要思想是在页面定义一个隐藏域,当第一个函数请求到数据时候修改隐藏域的值,第二个函数用jQuery的选择器选择页面中隐藏域的值. 比如: 页面中定义一个隐藏的页号. <!-- 隐藏查询条件的页号 --> <input type="hidden" name="currentPage" id="currentPage"> 第一个ajax函数获取页面中的页号: function queryNum(c

JS中的函数、Bom、DOM及JS事件

本期博主给大家带来JS的函数.Bom.DOM操作,以及JS各种常用的数据类型的相关知识,同时,这也是JavaScript极其重要的部分,博主将详细介绍各种属性的用法和方法. 一.JS中的函数 [函数的声明及调用] 1.函数声明的格式: function 函数名(参数1,参数2,参数3,--){//函数体 return 结果; } >>>函数的调用格式: 直接调用:函数调用的格式:函数名(参数一的值,参数二的值,--): 事件调用:事件名=函数名( ); 2.函数声明的几点强调: ①函数名

js中的函数

一.函数定义的方式 (1)普通方式 语法: function 函数名(参数){ 函数体 } Code: function method(){ alert("testMethod"); } method(); (2)匿名函数 语法:function(参数){ 函数体 } Code: var method = function(){ alert("yyy"); }; method(); (3)对象函数 语法:new Function(参数列表,函数体): 注意:参数名称

js实现trim函数

面试碰到了一道题,用js实现trim函数,用正则表达式替换可以实现,实现方式如下: 写成类的方法格式如下:(str.trim();) String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); } String.prototype.ltrim=function(){ return this.replace(/(^\s*)/g,""); } String.prototype.