博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(复习)js之属性与继承
阅读量:6601 次
发布时间:2019-06-24

本文共 1230 字,大约阅读时间需要 4 分钟。

js是函数第一型的语言,在下面使用函数来创建对象。

一、属性

1.私有属性

在函数中,使用var或function声明来维持私有属性(包括普通变量和方法)

 

2.共有属性

共有属性采用this.attr的形式

 

3.原型属性

以objName.prototype.attr设置的属性,即在原型对象上添加的属性

 

4.类属性

objName.attr设置的属性

例子:

function
 obj(){
    
var
 a 
=
 
1
;
    
this
.b 
=
 
2
;       
    
function
 c(){
        
return
 
3
;
    }     
    
this
.d 
=
 
function
(){
        
return
 
4
;
    }
}    
var
 o 
=
 
new
 obj();
document.write(o.a
+
"
  
"
+
o.b
+
"
  
"
+
o.c
+
"
  
"
+
o.d());

 

得到结果: undifined    2    undifined    4

 

二、继承

1.构造继承

方法:在子类的构造方法中,通过apply或call函数调用父类的构造函数,实现父类属性到子类构造函数中this的复制

function
 A(){     
//
父类
    
this
.a 
=
 
1
;
}
function
 B(){     
//
子类
    A.apply(
this
);
}

缺点:不能继承原型属性

优点:能够实现多继承,即在子类构造函数中多个父类apply即可;能够解决构造函数带参数的问题

 

2.原型继承

方法:直接只用对象的prototype属性设置父对象(非父类)

B.prototype 
=
 
new
 A();

缺点:修改了子对象的constructor属性;子类构造函数参数传递的问题;只能实现单继承;被迫实例化父类,有很多负作用

 

3.实例继承

基于的思想:若构造函数的返回值为值类型(没有写return的返回undefined),new只是初始化this传递进来的值;若构造函数返回一个引用类型,则new返回的引用类型所指的对象

function
 B(){
    
var
 a 
=
 
new
 A();  
//
创建父类实例
     a.attr1 
=
 
1
;    
//
添加属性
    
return
 a; 
}

优点:能够对属性进行扩充

 

4.clone法

思路:使用自定义的clone把父类的所有属性copy一份(来个深度克隆,包括prototype属性)

function
 clone(obj){
    
if
(
typeof
(obj) 
!=
 
"
object
"
)
return
 obj;
    
if
(obj 
==
 
null
)
return
 obj;
    
var
 newObj 
=
 
new
 Object();
    
for
(
var
 i 
in
 obj){
        newObj[i] 
=
 clone(obj[i]);
    }
    
return
 newObj;
}

 

 

 

转载于:https://www.cnblogs.com/return/archive/2009/11/01/1594143.html

你可能感兴趣的文章
初识java
查看>>
temporary Object and destructor
查看>>
xcode - 移动手势
查看>>
本地上jar命令
查看>>
细说浏览器特性检测(1)-jQuery1.4添加部分
查看>>
古中国数学家的计算力真是惊人
查看>>
XMl各种格式转换功能代码
查看>>
Java基础-算术运算符(Arithmetic Operators)
查看>>
XML 基础
查看>>
C#编程(四十七)----------集合接口和类型
查看>>
java的Date() 转换符
查看>>
手机浏览器旋转为宽屏模式下文字会自动放大的解决方案
查看>>
【模板】二分图匹配
查看>>
php调试工具 xdebug的安装 和phpstorm的配置
查看>>
【转】关于大型网站技术演进的思考(十二)--网站静态化处理—缓存(4)
查看>>
WCF、WebAPI、WCFREST、WebService之间的区别
查看>>
20155203 实验五《网络编程与安全》
查看>>
网络对抗技术作业一
查看>>
积跬步,聚小流------Bootstrap学习记录(1)
查看>>
HDUPhysical Examination(贪心)
查看>>