function _obj(){};
_obj.prototype.name = "野兽"; //每个函数都包含一个prototype属性,这个属性指向一个对象的引用,这个对象就是“原型对象”。
_obj.prototype.age = 21;
_obj.prototype.sayHello = function(){
console.log("Hello "+this.name);
};
var obj = new _obj();
console.log(obj); //_obj{} 而其的__proto__里包含了_obj里的各个属性,包括name,age,sayHello
console.log(obj.__proto__ == _obj.prototype); //true
obj.sayHello(); // Hello 野兽
console.log(Object.prototype.__proto__); // null 当我们追究到Object(也就是object的源头时)其指向的是null
var firstNum = 1;
~function(){
var secondNum = 2;
console.log("在里面打印:"+firstNum ,secondNum); // 在里面打印:1 2
}();
console.log("在外面打印:"+firstNum ,secondNum); // Uncaught ReferenceError: secondNum is not defined(…)
var firstNum = 1;
console.log("在最外层打印:"+firstNum); // 在最外层打印:1
~function(){
var secondNum = 2;
console.log("在中间层打印:"+firstNum,secondNum); // 在中间层打印:1 2
~function(){
var thirdNum = 3;
console.log("在最里层打印:"+firstNum,secondNum,thirdNum); // 在最里层打印:1 2 3
}();
console.log("在中间层打印:"+firstNum,secondNum,thirdNum); // Uncaught ReferenceError: thirdNum is not defined(…)
}();
console,log("在最外层打印:"+firstNum,secondNum,thirdNum); // 由于上面已经报错,而浏览器执行JavaScript又是单线程的,所以压根没执行到这句...
function counter(){
var num = 0;
return {
count : function(){ return num++; },
reset : function(){ return num = 0; }
}
};
var firstNum = counter();
var secondNum = counter();
console.log(firstNum.count()); // 0
console.log(secondNum.count()); // 0
firstNum.reset();
console.log(firstNum.count()); // 0 num已被重置,所以返回的为0
console.log(secondNum.count()); // 1 num未被重置,所以返回的是1
console.log(firstNum,secondNum); // 都为 Object{ count:function(),reset:function(),__proto__} 并且并不能在其中找到counter里var的n,这也实现了函数里的私有变量,只将需要暴露的两个方法给暴露在外。
console.log(this); // Window {external: Object, chrome: Object, document: document, global: Window, cr: Object…} 全局下执行console.log,所以此处指向的是Window
~function seeThis(){
console.log(this); // Window {external: Object, chrome: Object, document: document, global: Window, cr: Object…} 由于我是在全局下写的这个函数,所以此处指向的还是Window
}();
var obj = {
name:"野兽",
showThis:function(){
console.log(this); // Object {name: "野兽",showThis:function(),__proto__} 此处打印的是对象本身
}
};
obj.showThis();
function argumentsTest(){
console.log(arguments[0]?arguments[0]:"Hello World",arguments[1]?arguments[1]:"你好 世界")
};
argumentsTest(); // Hello World 你好 世界
argumentsTest("This is firstValue => arguments[0].","This is secondValue => arguments[1]."); // This is firstValue => arguments[0]. This is secondValue => arguments[1].
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有