// 1.闭包的作用// 实现共有变量,函数累加器的实现// 可以做缓存以及储存结构// 可以实现封装,实现属性私有化// 模块开发,防止全局污染// var name = 123;// var int = (function () {// var name = 456;// function inte() {// console.log(name);//// }// return inte();// }());// 2.递归实现n的阶乘,递归最重要的是找到规律以及出口;// function mul(n) {// if (n === 1){// return 1// }// return n * mul(n - 1);//// }//// console.log(mul(7));// 3.argument.callee的使用说明// 当这个函数名称未知时,可以通过此方法来调用自身// var num = (function (n) {// if (n ===1){// return 1// }// return n * arguments.callee(n - 1);//// }(10));// console.log(num);// 4.hasOwnProperty可以判断一个对象是否有名称的属性或对象,如果该属性// 方法是该对象自己定义的而不是原型链中定义的则返回true,否则返回false// 5.斐波那契数列,使用递归的方法来写// function fb(n) {// if (n === 1 || n ===2){// return 1// }// return fb(n - 1) + fb(n - 2);//// }// 6.浮动元素与浮动流// 所有的产生了浮动流的元素,块级元素都看不到// 产生了bfc的元素和文本类属性的元素以及文本都能看得到浮动元素// 7.浅层克隆// var obj = {// name : "liu",// age : 15,// sex : "mal"// };// var obj1 = {};// function clone(origin, target) {// for (var prop in origin){// target[prop] = origin[prop];// }//// }// clone(obj, obj1)// 8.闭包// 当内部函数被保存到外部时,将会生成闭包。闭包会导致原有作用域链// 不被释放,,可以使用立即执行函数来解决闭包问题;// 9.方法的借用// function Person(name, age, sex) {// this.name = name;// this.age = age;// this.sex = sex;//// }// function Students(name, age, sex) {// Person.call(this, name, age, sex)// }// var students = new Students("LIU", 16, "mal")// 10.数组的常用方法// 会改变原数组:push pop shift unshift sort reverse splice// 不会改变原数组:concat, join——split , tostring, slice// 11.完整的圣杯模式// function Father() {//// }// function Son() {//// }// function inherit(Target, Origin) {// function F() {}// F.prototype = Origin.prototype;// Target.prototype = new F();// Target.prototype.constructor = Target;//// }// inherit(Son, Father);// var son = new Son();// var father = new Father();
原文地址:https://www.cnblogs.com/vvbk/p/10805231.html
时间: 2024-11-05 19:42:26