标签:
if (true)
{
var i = ‘moersing‘
}
console.log(i); //可以访问。
var s= ‘moersing‘;
var f= function () {
console.log(s); //这里输出的是undefined
var s=‘lingfo‘;
}
f();
function f ()
{
var count=0;
var get =function(){
count ++;
return count;
}
return get;
}
var getCount = f();
console.log(getCount()); //1
console.log(getCount());//2
有些网友时常问,我想根据点击的按钮的位置(下标)来执行相应的操作,但是最后总是无法获取到下标,那是因为,在for循环中绑定的下标是是会变化的,当for循环执行完成后,下标的值总是等于 i+1。如:
<div>0</div> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> var allDiv = document.querySelectorAll(‘div‘); for(var i=0;i<allDiv.length;i++) { allDiv[i].onclick=function(){
alert(this.nodeName+i);
} }
在这里,无论单击那个DIV,都会返回 DIV9,原因是,for循环最后一次++是等于9,而9 < allDiv.length =false,所以,循环退出,但是在每个div里面绑定事件是显示i的值,所以一直都是9.
利用javascript提供的闭包特性可以解决这个问题。
<div>0</div> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> var allDiv = document.querySelectorAll(‘div‘); for(var i=0;i<allDiv.length;i++) { (function(i){ allDiv[i].onclick=function(){ alert(this.nodeName+i); } })(i); }
var m = { name:‘moersing‘, func:function(console.log(this.name)) } var t = { name:‘linfo‘, } m.func(); // moersing t.func= m.func; t.func();//linfo;
var m = { name:‘moersing‘, age:18, print:function(){ console.log(this.name+this.age) } } var t = {name:‘linfo‘,age:20} m.print.call(t); //info 20
__proto__:指向对象的原型。
prototype:指向了构造函数的原型对象。
constructor:对象(包括原型)有一个constructor属性,这个属性指向了其所在的函数。
function c (){ }; alert(c.__proto__); // function empty() alert(c.prototype); // c 从上面可以看出两者之间的不同。 var cc= new c(); alert(cc.__proto__==c.prototype); //true
如果使用c作为构造函数,那么cc实例的__proto__就和c.prototype一致了。
下面是一些例子:
console.log(obj.__proto__ === Object.prototype) // true console.log(arr.__proto__ === Array.prototype) // true console.log(reg.__proto__ === RegExp.prototype) // true console.log(date.__proto__ === Date.prototype) // true console.log(err.__proto__ === Error.prototype) // true
本人纯属菜鸟,如果有什么不对的地方,还请指正,原创文章,转载请注明地址。QQ:1261870167
标签:
原文地址:http://www.cnblogs.com/Moersing/p/4457481.html