这样的认识,只是被用来使用,使用,但不去探索它的本质。这一次,Javascript OD部位(所有的调试可以在
控制台看到
浏览器F12键)
让我们看看这个。
当我们声明一个
函数时,每个函数除了定义它的
参数之外还有两个参数,一个是这个参数,另一个是参数。参数是函数实际接受的参数,是一个类数组。参数我只做一个简短的
介绍,重点放在这个指针上。
在面向对象的
转换中,这是非常重要的,它的值取决于调用的
模式。在Javascript中,有4种调用模式:
方法调用模式、函数调用模式、构造函数调用模式和应用调用模式。
方法调用模式
当一个函数是一个对象的
属性时,我们通常称这个函数为对象的一种方法,当调用这个方法时,这指向该方法属于的对象。
复制代码代码如下所示:
var
名称:伊卡
sayname:函数(){
console.log(这个
名字); / /伊卡
此/已绑定到人员对象
}
}
people.sayname();
作为板栗
显示,这个点来sayname对象,一种获取上下文对象属于这种方法,这是常用的方法。(公共法)
函数调用方式
当一个函数被调用时,它不是对象上的一个方法,然后它被称为函数。
这个模式调用,这将指向窗口对象,即使这个函数可以在外部函数中调用,我们还是来看看栗子。
复制代码代码如下所示:
变量名=窗口一卡;
var
名称:人伊卡
学生:函数(){
console.log(本); / /这一定是人
功能sayname(){
变量名=sayname伊卡;
console.log(这个名字); / /窗伊卡
即使sayname / /函数本身和它的人民的对象都有一个名字,但这是窗口
};
sayname();
}
}
people.student();
在这种
情况下,有可能知道如何
解决Javascript的设计
错误吗
只要是在学生的功能,即第六线,这是缓存。然后可以通过转移到sayname功能通过一个变量解决。
复制代码代码如下所示:
var
名称:人伊卡
学生:函数(){
var =
功能sayname(){
变量名=sayname伊卡;
console.log(自命名); / / 人伊卡
};
sayname();
}
}
构造函数调用模式
只要在Javascript中告诉构造函数,就会在头部有一个函数名!函数名称被很好理解,以便统一统一构造函数的命名,但是您
发现了为什么要使用新的构造函数吗如果在函数调用的函数的
背景前,将
创建一个新的对象指向函数的原型,而这也必将对新object.javascript
语言是基于原型的继承。对原型原型不太清楚的学生可以自己
检查数据。我想把重点放在这件事上。
让我们先看看构造函数大体上是什么样子。
复制代码代码如下所示:
函数人(名称){
this.name = / /这个名字;在这里,新的电话后,指向新的对象伊卡
this.sayname =函数(){
console.log(这个名字); / /输出
}
}
VaR伊卡=新的人(一卡);
Yika.sayName(伊卡); / /输出
乍一看,这似乎不太清楚。这个函数如何指向窗口,现在它可以指向
用户函数而不用缓存呢
没关系.我只是没说这个函数是通过新调用的,它会在字段后面做一些不好的事情,让我们看看我们做了什么。
复制代码代码如下所示:
函数人(名称){
var = {;} /一个坏东西:他生成一个对象
that.name =名称;
that.sayname =函数(){
Console.log(的名字);
};
返回那个;坏的两个,它们将改变返回对象的行为,返回刚刚生成的
}
VaR伊卡=人(伊卡); / /这里可以省略,模仿呼唤新的算子
(伊卡。sayname); / /一样输出伊卡
这样一来,很明显,新不仅会生成一个对象,而且还会自动返回对象,因此自然指向这个新对象。
记住用新的方法调用构造函数,否则没有警告所有大写的约定仍然是必需的。
应用调用模式
应用程序方法允许我们为调用函数构建一个参数数组,并允许我们更改这个值。
function.apply(这个结合,数组参数的参数值)
申请可以说得这么多,我只是举个栗子帮你明白:
复制代码代码如下所示:
函数人(名称){
this.name =名称;
this.sayname =函数(){
console.log(这个名字); / / sayname属于人民构造函数的方法
}
}
函数学生(名称){
people.apply(这个参数); / /集成模式使用的构造函数,是学生中的构造函数,被人们称为构造函数的应用,改变这个人的价值
所以每次创建学生实例时,都会调用人员构造函数。
}
VaR的学生=新学生(一卡);
student.sayname(伊卡); / /输出
通过应用程序,我们可以很容易地
修改函数的这个绑定对象,调用与应用程序具有相同的效果。感兴趣的学生可以自己
搜索和
学习。
最后,我们可以改变这四种调用模式。方法调用模式和构造函数调用模式将越来越重要。而功能调用模式,则要学会避免陷阱。
如果有错误,请及时回复。我会尽快改正,以防别人误解。谢谢您.