Javascript中指针的新理解

Javascript中指针的新理解
这样的认识,只是被用来使用,使用,但不去探索它的本质。这一次,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(伊卡); / /输出
通过应用程序,我们可以很容易地修改函数的这个绑定对象,调用与应用程序具有相同的效果。感兴趣的学生可以自己搜索学习

最后,我们可以改变这四种调用模式。方法调用模式和构造函数调用模式将越来越重要。而功能调用模式,则要学会避免陷阱。

如果有错误,请及时回复。我会尽快改正,以防别人误解。谢谢您.
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部