惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Recent Announcements
Recent Announcements
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
A
About on SuperTechFans
M
MIT News - Artificial intelligence
V
Visual Studio Blog
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
Jina AI
Jina AI
P
Proofpoint News Feed
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
N
Netflix TechBlog - Medium
人人都是产品经理
人人都是产品经理

博客园 - lzb

预排序遍历树算法 新思创:政务办公系统解决方案 OA系统权限分配实现方案【再转】 关于权限设计的探讨 工作流管理系统 Ext-Menu-action禁用 Ext-Menu-日期控件过长 Ext-TabPanel-插件 Google-首页效果图-源代码 Ext-Layout Ext-tree Ext-Grid-HttpProxy-分页 JAVASCRIPT-全面理解javascript的Arguments,caller,callee,call,apply Core/Ext.js 转自JS堂 Core/Ext.extend 从继承说起 转自JS堂 What is the basic thing to keep in mind about forms 修改Eclipse文本文件默认编码 Javascript 原型和继承(Prototypes and Inheritance) Ext-Xml-Grid-汉化、加载
JAVASCRIPT-继承
lzb · 2008-12-08 · via 博客园 - lzb

//无限对象的继承
function apply(){
    
var l=arguments.length;
    
if(l<1)return null//无参数
    if(l>2){ //多于两个
      apply(arguments[0],arguments[l-1]); //从最后一个开始继承
      arguments.length=l-1//去掉最后一个参数然后递归
      apply(arguments);
    }
    
//两个参数
    if(arguments[0]&&arguments[1]&&typeof arguments[1]=="object"){
      
for(var A in arguments[1]){
        arguments[
0][A]=arguments[1][A];
      }
    }
    
return arguments[0];
};
//这个继承,如果两个对象的属性相同,则后被继承的对象属性将覆盖前被继承对象属性
//
关于function对象参数问题,都有arguments对象管理;写一个方法(定义好有参数的),在调用的时候可以少传,或者不传参数
var a = new Object();
a.aa 
= "a对象属性aa";
a.bb 
= "a对象属性bb";
a.cc 
= "a对象属性cc";
var b = {aa:'b对象属性aa',bb:'b对象属性bb',cc:'b对象属性cc'};
var c = new Object();
var obj = apply(c,b,a);
for(var i in c)
{
    
//alert(i+":" + obj[i]);    
}