实习日志-4(javascript)
关于prototype
例1
function a(){
this.a = 1;
this.b = 2;
};
a.prototype.a = 1;// 此时没有改变a.prototype.constructor
console.log(a.prototype.constructor);
a.prototype = {}; // 此时改变了a.prototype.constructor
console.log(a.prototype.constructor);
例2
function A(){
this.c = 1;
}
A.prototype.b =2;
var foo = new A();
for(var i in foo){
cosole.log(i);
};//c,b
for(var i in foo){
if(foo.hasOwnProperty(i)){
cosole.log(i);
};
};//c
//遍历输出foo中的属性时,调用foo.hasOwnProperty(i),返回的结果只有构造函数function A()中有的属性,不包括prototype中的属性。
一句话:
prototype 可理解为多个实例(这多个实例用同一个构造函数构建)共享的东西,它们可以使用,但是实际上并不属于它们.
重温hoisting和算符的优先级
来自小小沧海的“一道常被人轻视的前端JS面试题”http://www.cnblogs.com/xxcanghai/p/5189353.html
——2017.7.20实习于
http://map.baidu.com/?newmap=1&s=con%26wd%3D%E6%9D%8F%E6%9E%97%E6%B9%BE%E8%90%A5%E8%BF%90%E4%B8%AD%E5%BF%83%26c%3D194&from=alamap&tpl=mapdots