标签:this 模式 prototype type return语句 表示 构造函数 基本 efi
案例1: function f1() { console.log(this); } f1(); //window 案例2: function f2() { return function () { console.log(this); } } var f2n = f2(); f2n(); //this-->window 这也是一次函数调用模式 案例3: functioon f3() { f3n(); //函数的调用模式--->window function f3n() { console.log(this); } } f3();
代码1: var obj={ age:10, say:function(){ console.log(this.age); } }; obj.say();//方法调用模式 代码2: function f1(){ console.log(this); } var obj2={ s1:f1//将f1函数的值赋值给obj2.s1属性 }; obj2.s1();//方法调用模式——>this:obj2 代码3: var obj3={ age:10, s1:function(){ console.log(this.age); } }; var obj4={ age:20, s2:obj3.s1//将obj3.s1函数的值赋值给s2属性 }; obj4.s2();//方法调用模式:this——>obj4 function f5(){ } var a1=f5();//undefeind var a2=f5;//a2是一个函数
代码1: function Person() { this.age = 20; this.name = "张三"; console.log(this); } //构造函数调用模式: var p1 = new Person(); //打印出该实例 Person {age: 20, name: "张三"} 代码2; function P2() { this.age = 18; return "abc"; } var p2 = new P2(); console.log(p2); //P2 {age: 18} 代码3: function P3() { this.age = 10; return {}; } var p3 = new P3(); console.log(p3); //Object {} console.log(p3.age);//undefined 代码4: function P4() { this.age = 10; return [1, 3, 5]; } var p4 = new P4(); console.log(p4);//[1, 3, 5] console.log(p4.age);//undefined
function f1(){ console.log(this); } //上下文模式 f1.call(null); //window f1.call(undefined); //window f1.call(1); //Number的实例 f1.call("abc"); //String的实例 f1.call(true); //Boolean的实例 var s1="abc"; //代码内部创建了字符串所对应的String构造函数的实例 // {0:"a",1:"b",2:"c",length:3} //代码执行完毕之后,就会把这个实例给销毁 console.log(s1.length); //3 console.log(s1[0]); //"a"
标签:this 模式 prototype type return语句 表示 构造函数 基本 efi
原文地址:http://www.cnblogs.com/weinqing/p/6411309.html