js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

如果下载的源码需要作者授权,请更换源码。本站免费分享资源不会增加授权

本篇文章给大家带来的内容是介绍js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

原型链

JavaScript 对象是动态的属性“包”(指其自己的属性)。JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。

在不影响origin的原型链的前提下,创建一个target复制origin的原型链

var inherit = (function(){     var F = function (){};     return function (Target, Origin){         F.prototype = Origin.prototype;          Target.prototype = new F();         Target.prototype.constructor = Target;   //目标函数的原型的构造函数定义为目标函数         Target.prototype.uber = Origin.prototype; //uber超类,指的是目标函数的最终原型为Orign的原型         }     }())

继承

一般公司常用立即执行函数写功能,而且调用一个init()初始化函数

代码中的callname()中的call作用是改变this指针,将name的this指向改为当前函数下的this

注意的是要用return返回函数

<script> var init=(function(){     var name ='辣鸡';     function callname(){         console.log(name);         }     return function(){         callname();         }     }()) init(); </script>

枚举:

var org={     name:'智障',     sex:'男',     height:178 } for ( var proto in org ){     console.log(org.proto) }

这样子会打印三次undefined,因为此时会把proto当成对象的某个属性,要把代码中的org.proto改为org[proto],否则会默认理解为org[‘proto’]。

正常输出如下,打印出三个值,若想打印属性,则直接console.log(proto)

js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

对象的枚举,三种方法:

for in —–> 1.instanceof 2.hasOwnProperty 3. in

1、instance of

A instance of B

判断A对象是不是B的构造函数构造出来的

function Person(){} var person = new Person();

js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

所以识别数组和对象的方法——->1. instanceof 2. to String call 3.constructor

1)var obj={}

js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

2)toString call

js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

3)constructor

var obj = {}

js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

看A对象的原型链上有没有B的原型

2、hasOwnProperty,判断是否属于自己的方法,可以排除原型的方法__proto__

var org={     name:'智障',     sex:'男',     height:178,     __proto__:{         lastName:'zhang'         }     }for(var prop in org){    if(org.hasOwnProperty( prop )){     console.log(prop)     } }var obj={};

js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

3、in

in 和 hasOwnProperty 情况类型,但是原型中的方法也存在方法列举中

js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

当内部函数被保存在外部时,会生成闭包函数,闭包会导致原有作用域链不释放,造成内存泄漏

闭包四种作用:

1.实现公有变量 eg:累加器

2.可以做缓存(存储结构)

3.实现封装,属性私有化

4.模块化开发,防止污染全局变量(圣杯模式)

/用闭包来定义公共函数,并令其可以访问私有函数和变量。这个方式也称为 模块模式(module pattern)(圣杯模式)

本文由(壳先生)整理自网络,如转载请注明出处:https://www.mrshell.com;
本站发布的内容若侵犯到您的权益,请邮件联系 i@mrshell.com 删除,我们将及时处理!
===========================================================================

1. 本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2. 本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3. 不得使用于非法商业用途,商用请支持正版!不得违反国家法律,否则后果自负!
4. 若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

=================================================================

壳先生 » js中的原型链、闭包四种作用、继承、命名空间、枚举类型是什么?

发表评论

提供最优质的资源集合

立即查看 了解详情