首页 > Web开发 > 详细

js基础知识之二

时间:2020-12-16 09:27:13      阅读:43      评论:0      收藏:0      [点我收藏+]

今天在看视频,学到原型链部分了,正好将之前的知识补充一下,三局口诀

  1. 每一个函数,都有一个天生自带的属性,prototype,也叫原型,这个属性是一个对象数据类型
  2. 在prototype这个对象上,浏览器默认给它添加了一个属性,constructor,指向当前的函数
  3. 每个对象都有一个自带的属性,__ proto __,这个属性指向当前实例所属的类的实例对象

Object这个类是所有类的基类,如果从之前的推理路径推断的话,它的原型对象指向了原型对象自己,事实上
Object.prototype.__ proto__ 值为null
讲解是说Object对象的原型对象没有这个属性 __ proto __ ,但是如果没有,应该是undefined才对,但是这里是null,并且在chrome里面查看,确实是没有这个属性的。

对了,__ proto __之前是说在生产省不要使用这个属性,就是因为在IE上直接使用这个属性会报错,因为IE为了保护原型上的属性不会瞎改。

continue与break的不同

其实对这两个关键字,理解的比较肤浅,都是跳出,但是break是会跳出整个循环,主要用在switch语句里面
而continue只是跳出当前循环,比如for循环中,在一次循环中,命中了某个条件,这次循环就跳出,继续下次循环,如果break在这儿,这整个循环就都结束了。

贴一个数组去重的写法,之前没尝试过,

    /*
    * 数组去重方法
    * */
    Array.prototype.myUnique=function () {
        var obj={}
        for(var i=0;i<this.length;i++){
            console.log(i);
            var cur=this[i];
            if(obj[cur]===cur){
                this[i]=this[this.length-1]; //将这个用最后一个替换掉,并且,将数组缩短
                this.length--;
                i--; // 因为将数组缩短了,所以,需要将i减一,这样,这个地方的值还能被判断,必须减一
                continue
            }
            obj[cur]=cur
        }
        obj=null
        return this
    }

    var arr1=[1,2,3,4,5,1,2,3,4,5];
    arr1.myUnique()

后面还有东西没搞完,时间太晚了,后面继续补上

js基础知识之二

原文:https://www.cnblogs.com/ysla/p/14141789.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!