您现在的位置:首页 >> 前端 >> 内容

滴滴前端:原型继承

时间:2017/9/13 10:33:00 点击:

  核心提示:原型继承每个函数都有一个原型属性prototype。每个对象都有一个_ proto _属性由这个函数创建的对象有一个_ proto _属性指向这个原型。function A(){};A.prototy...

原型继承

每个函数都有一个原型属性prototype。

每个对象都有一个_ proto _属性

由这个函数创建的对象有一个_ proto _属性指向这个原型。

function A(){};
A.prototype.x = 1;
console.log(A.prototype);

//{x: 1, constructor: ?}
//constructor:f A()
//__proto__ :Object

var a = new A();
console.log(a);    //A {}
console.log(a.prototype);   //undefined   只有函数有
console.log(a.__proto__  == A.prototype);   //true
console.log(a.constructor == A);  //true

function B(){}
B.prototype = new A();   //实现继承
var b = new B();
console.log(b.x);  //1
console.log(B.prototype);   //A {}
console.log(B.prototype.constructor == A);  //true

//所以需要加入一步校正
B.prototype.constructor = B;

//也可以在继承部分采用
B.prototype = Object.create(A.prototype);  //使用指定的原型对象及其属性去创建一个新的对象。同样需要加一步校正

滴滴前端:原型继承

字符串

如果str1中存在str2中没有的字符串,则输出false

function A(str1,str2){
    for(s of str1){
        if(str2.indexOf(s) == -1){console.log('false'); return;}
    }
    console.log('true');
}
function A(str1,str2){
    for(var i=0;i
function A(str1,str2){
    for(var i=0;i

ES6针对大于0xFFFF的提供了 codePointAt 和 fromCodePoint 关于charAt,似乎还没有 不能用indexOf的话,就利用对象的键值来存放信息。

JS实现各种排序

冒泡排序(Bubble Sort)

两两比较,前>后则交换位置,每次选出一个最大的,所以每一轮需比较的序列-1

function BubbleSort(arr){
    for(var i=0;iarr[j+1]){
                var tmp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=tmp;
            }
        }
    }
    return arr;
   }

选择排序(Selection Sort)

每次找出最小的位置,更新index,一遍之后和当前遍历的起始位置交换。

function SelectionSort(arr){
    for(var i=0;i

插入排序(Insertion Sort)

每次将一个元素往前插入到合适的位置(比前面的数大),每一次比较都要移位

function insertSort(arr){
    for(var i=1;i=0;j--){
            if(current

希尔排序(Shell Sort)

是插入排序的一种更高效率的实现。它与插入排序的不同之处在于,它会优先比较距离较远的元素。 算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d。对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。

function shellSort(arr){
    var d=Math.floor(arr.length/2);
    for(d;d>0;d=Math.floor(d/2)){
        for(i=d;i=0;j=j-d){
                if(tmp

快速排序(Quick Sort)

function QuickSort(arr){
    if(arr.length <= 1){return arr;}
    var index = Math.floor(arr.length/2);
    var indexNum = arr.splice(index,1);
    var left=[];
    var right=[];
    for(var i=0;i

作者:网络 来源:echody的博客