在原型链上进行批量设置公有属性和常用的六种继承方式
2017-07-24 14:58
197 查看
一、在js的原型链模式下,如何进行批量设置公有属性?
手动设置constructor为Fn,而不是Object:
二、原型链模式的六种常见继承方式:
propertyIsEnumerable()方法是判断是否为可枚举属性,对象的私有属性是可枚举的,公有属性(在obj所属类的.prototype上的)是不可枚举的,这里的if判断是输出obj的可枚举属性(私有属性),这个判断方法效果等同与hasOwnProperty()方法的判断结果,hasOwnProperty()用于判断对象的私有属性。
现在的Fn.prototype是Fn,指向同一个内存地址,所以说Fn.prototype改变,函数Fn也会跟着改变,而Fn改变,那么Fn.prototype也会跟着改变。
但是我们不想他们两个发生改变的联动,Fn.prototype修改是Fn不变,那该怎么做?
可以把obj克隆一份:
这种方法可以,但是麻烦,可以使用ESACJavascript5新增的create方法:
obj2.getY可以输出2,obj2中没有私有属性,但是把obj的私有属性作为obj2上一级的私有属性,相当于在obj2和Object之间增加一层。
原型继承:
都知道:
原型继承例子:
//B继承A,就是在B的原型指向A的实例
Call继承:
冒充对象继承:
混合模式继承:
寄生组合继承:
公有的只拿公有的,私有的就公私属性都有。
周氏继承法
中间类继承法-------不兼容
手动设置constructor为Fn,而不是Object:
二、原型链模式的六种常见继承方式:
propertyIsEnumerable()方法是判断是否为可枚举属性,对象的私有属性是可枚举的,公有属性(在obj所属类的.prototype上的)是不可枚举的,这里的if判断是输出obj的可枚举属性(私有属性),这个判断方法效果等同与hasOwnProperty()方法的判断结果,hasOwnProperty()用于判断对象的私有属性。
现在的Fn.prototype是Fn,指向同一个内存地址,所以说Fn.prototype改变,函数Fn也会跟着改变,而Fn改变,那么Fn.prototype也会跟着改变。
但是我们不想他们两个发生改变的联动,Fn.prototype修改是Fn不变,那该怎么做?
可以把obj克隆一份:
这种方法可以,但是麻烦,可以使用ESACJavascript5新增的create方法:
obj2.getY可以输出2,obj2中没有私有属性,但是把obj的私有属性作为obj2上一级的私有属性,相当于在obj2和Object之间增加一层。
原型继承:
都知道:
原型继承例子:
//B继承A,就是在B的原型指向A的实例
Call继承:
冒充对象继承:
混合模式继承:
寄生组合继承:
公有的只拿公有的,私有的就公私属性都有。
周氏继承法
中间类继承法-------不兼容
相关文章推荐
- c++笔记06---继承,公有继承,继承方式对访控属性的影响,私有继承和保护继承
- 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。
- 面向对象---基于组合的继承:属性的继承基于伪装的方式实现,而方法的继承基于原型链的方式继承。
- Android 常用UI控件的一些属性设置(在.xml文件里进行的设置)
- 对 CuteEditor Default.config进行常用属性设置
- 5.Maven和Eclipse整合(两种方式进行插件的安装),Maven相关设置,Eclipse下创建Maven项目
- 让代码中的属性可以在storyboard的右边栏中进行设置
- listView常用属性设置
- QtableWidget常用属性设置
- mybatis注解方式进行批量插入
- 182,UIButton继承UIControl,UIControl中常用的属性和方法
- C# 设置Excel 常用属性
- 类的继承方式对子类对外访问属性影响,赋值兼容性原则
- Eclipse常用设置和常用快捷方式
- Winform RichTextBox 通过API的方式进行设置
- js 实现继承的六种方式
- C++中继承方式对访控属性的影响
- C# 设置Excel 常用属性
- 常用控件含义,属性,继承关系
- linux下 pppoe通过直接设置配置文件方式进行拨号