我在学习JS初期,在使用this的时候经常出现问题,当然就是在现在,也有一些场景不能很好的明白this到底指代的是什么?看下面一个例子: var x = 10; var foo = { x: 20, bar: function() { alert(this.x); } } var bar = foo.bar; foo.bar(); //20 bar(); //10 其实最开始我想的结果都应该是20的,因为都是foo对象的方法,该方法调用的时候,this当然指的就是foo本身吗…
这里讲了一个最最最简单的JS中基于原型链的继承和多态. 先看一下以下这段代码的实现(A是“父类”,B是“子类”): var A = function(){ this.value = 'a'; this.showValue = function(){ console.log(this.value); } } var a = new A(); a.showValue(); var B = function(){ this.value = 'b'; }; B.prototype = new A();…
JS原生并没有提供方便使用的Formatter函数,用字符拼接的方式看起来混乱难读,而且使用起来很不方便.个人感觉C#里提供的语法比较好用,如: String.Format("Welcome to learn '{0}','{0}' is awesome,you will {1} it!","Javascript","love"); 这种有顺序的替换方式,比较清晰,而且在要替换同一内容时候可以省去传递重复参数的情况,下面是JS简单实现版本(没有严…
去空格:ss.replace(/\s/g,""); 数组: 千万不能用in操作符 in 是说存不存在这个key而不是value! var a = [66,99,77]; 66 in a //false 0 in a //true var vv = {aa:11,bb:22}; "aa" in vv; //true "cc" in vv //false 做实验的时候很容易 试成这样 var a = [1,2,3]; //undefined 1 in…