当前位置: 首页 > news >正文

厦门网站建设团队四会市住房和城乡建设局网站

厦门网站建设团队,四会市住房和城乡建设局网站,海口室内设计公司排名,网络管理协议看函数在执行的时候是如何调用的, 1 如果这个函数是用普通函数调用模式来进行调用,它内部的this指向了window; 2 如果一个函数在调用的时候是通过对象方法模式来进行调用,则它内部的this就是我们的对象; 3 如果一个函数在调用的时候通过构…

看函数在执行的时候是如何调用的,
 1 如果这个函数是用普通函数调用模式来进行调用,它内部的this指向了window;
 2 如果一个函数在调用的时候是通过对象方法模式来进行调用,则它内部的this就是我们的对象;
 3 如果一个函数在调用的时候通过构造函数模式调用,则它内部的this指向了生成的实例;
 4 如果这个函数是通过方法借用模式调用,则这个函数内部的this就是我们手动指定this

 

// 第1题
function Fn() {console.log(this);
}
Fn(); // window   普通函数调用模式
new Fn(); // {}   构造函数调用模式
Fn.apply(Fn); // Fn的函数体   方法借用模式// 第2题
var o = {f: function() {console.log(this);},2: function() {console.log(this);console.log(this.__proto__ === o[2].prototype);}
};
o.f(); // o   对象调用模式
o[2](); // o   对象调用模式
new o[2](); // {}   通过构造函数模式进行调用
o.f.call([1, 2]); // [1,2]   call方法进行方法借用
o[2].call([1, 2, 3, 4]); // [1,2,3,4]   call方法进行方法借用// 第3题
var name = "out";
var obj = {name: "in",prop: {name: "inside",getName: function() {return this.name;}}
};console.log(obj.prop.getName()); // 对象调用模式来进行调用  obj.prop.name,打印 'inside'
var test = obj.prop.getName; // 把test这个变量指向了obj.prop.getName所在的内存地址
console.log(test()); // 普通函数模式来进行调用,this指向window,打印 'out'
console.log(obj.prop.getName.apply(window)); // 方法借用模式,打印 'out'
console.log(obj.prop.getName.apply(this)); // 方法借用模式,打印 'out'
console.log(this === window); // true// 第4题
var length = 10;
function fn() {console.log(this.length);
}
var obj = {length: 5,method: function(f) {console.log(this);f(); // f在调用的时候是什么调用模式?普通函数调用模式  window.length,打印 10arguments[0](); // 通过什么模式来进行调用的。执行之前有[]和.就是对象调用模式。// arguments是一个类数组,也就是一个对象,就是通过arguments来进行调用的// 通过arguments对象进行调用,因此函数内部的this是 arguments// arguments.length实参的数量。实参长度是1,所以打印 1arguments[0].call(this);// 如果一个函数在调用的时候它前面有call和apply那么就肯定是方法借用模式调用// 调用method方法是通过obj.method 因此在这里的this就是 obj// 通过call方法把fn内的this指向了obj// 输出obj.length,打印 5}
};
obj.method(fn);// 第5题
function Foo() {getName = function() {console.log(1);};return this;
}
Foo.getName = function() {console.log(2);
};
Foo.prototype.getName = function() {console.log(3);
};
var getName = function() {console.log(4);
};
function getName() {console.log(5);
}
// 请写出以下输出结果:
Foo.getName(); // 2
getName(); // 4
Foo().getName(); // 1
getName(); // 1
new Foo.getName(); // 2
new Foo().getName(); // 3
new new Foo().getName(); // 3// 第6题
var obj = {fn: function() {console.log(this);}
};
obj.fn(); // obj
var f = obj.fn;
f(); // window
console.log(f === obj.fn); // true
// f和obj.fn是同一个函数,但是他们在调用的时候使用的函数调用模式不同,因此,它们内部的this指向也就不同。// 第7题
var arr = [function() {console.log(this);}
];
arr[0](); // 数组本身
// 数组也是一个复杂数据类型,也是一个对象,那用数组去调用函数,使用的模式就是对象方法调用模式。
function f() {console.log(this);
}
function fn() {console.log(arguments); // 类数组,也是就一个对象   [0:function f(){}]console.log(this); // windowarguments[0]();console.log(arguments[0]); // 内部的this就是arguments// 通过arguments对f这个方法进行调用,使用的是对象方法调用模式。
}
fn(f);// 第8题
function SuperClass() {this.name = "women";this.bra = ["a", "b"];
}
SuperClass.prototype.sayWhat = function() {console.log("hello");
};
function SubClass() {this.subname = "you sister";SuperClass.call(this);
}
var sub = new SubClass();
console.log(sub.sayWhat());

http://www.yayakq.cn/news/917285/

相关文章:

  • 专业商城网站建设公司新云自助建站
  • 为什么需要建设网站网站链接分享做推广
  • 摄影图片素材网站wordpress插件清单 很多很全
  • 章丘区当地网站建设哪家好临沂做网站的公司有哪些
  • 网上做设计兼职哪个网站好点高端网站建设推广
  • 南京网站设计培训价格上海公司电话
  • 旅游电子商务网站的建设方案wordpress支持
  • 建设垂直网站需要哪些流程网推公司怎么收费
  • 进入江苏省住房和城乡建设厅网站首页wordpress-5.0升级未被安装
  • 在线做家装设计的网站怎么知道网站是什么开源做的
  • 漳州做网站匹配博大钱少a网站设计制作的服务商
  • 在线考试网站开发报价无锡做网站公司在哪里
  • div网站模板门户网站首页设计
  • 电商网站开发教材免费空间 个人网站 google广告联盟
  • 企业更新网站的好处自媒体135app下载
  • 网站建设过程总结报告大气简洁网站
  • 如何弄一个网站建立一个网站赚钱了
  • 平湖公司网站建设ui设计稿
  • 购物网站建设 成都软件开发交付流程
  • asp.net+mvc+网站开发电气营销型网站方案
  • 用动易建设网站教程可以在线观看的免费资源
  • 网站推广软件app许昌网络推广公司
  • 网站推广公司水果茶优化设计六年级下册语文答案
  • 河北省住房和城乡建设厅网站首页网站建设网站及上传
  • 提供手机网站开发创新网站建设工作室
  • 制作网站步骤广州网站优化效果
  • 漯河做网站公司东莞大岭山属于哪个镇
  • 类似pc蛋蛋的网站建设网站流量 seo
  • 网站建设与维护招投标书列表怎么做网站
  • 建设网站的目的服装类热点新闻素材