JS变量的定义和数据类型

 2024-02-09 00:03:05  阅读 0

对象添加方法

方法只不过是附加到对象的函数。

在构造函数中定义对象的方法:

(,,年龄,)

这.=;

这.=;

this.age=年龄;

这.=;

这.=; //对象的方法。

(姓名)

这.=名字;

var =new ("乔","多姆",50,"蓝色);

.(“杰克”);

。写(。);

显示的结果是:Jeck。

() 函数名称的值所赋给的属性。

种类

它是一种面向对象的语言,但不使用类。

在 中,不创建类,也不从类创建对象(与其他面向对象语言一样)。

基于,而不是基于阶级。

属性

1 原型设计模式

原型方法的主要思想是现在有一个类A,我想创建一个类B。这个类以A为原型,可以扩展。 我们将B的原型称为A。

2.方法可分为三类:

一个类方法

b 对象方法

c 原型方法

例子:

检测变量数据类型_变量查询工具_js检查变量类型

3 obj1.func.call(obj)方法

意思是把obj当成obj1,调用func方法

是什么意思?定义和用法

属性允许您向对象添加属性和方法

注意:它是一个全局属性,适用于所有对象。对象属性的解释是:返回对象类型原型的引用

语法

1. ..名称=值; //为新属性添加名称并赋值;

2.A..方法名称=(){}

例子:

变量查询工具_检测变量数据类型_js检查变量类型

输出是:

上面的代码实际上相当于:

js检查变量类型_变量查询工具_检测变量数据类型

3.A. =新B();

理解它不应该与继承相混淆。 A是B的实例,可以理解为A克隆了B中的所有方法和属性,A可以使用B的方法和属性。 这里强调的是克隆而不是继承。 可能会发生这种情况:A 是 B 的实例,B 也是 A 的实例。

js检查变量类型_变量查询工具_检测变量数据类型

我们先定义类,然后还要定义它,但是我们打算用一个实例作为原型,并且clone也包含这个对象方法。

。 = new()可以理解为:它是通过克隆一个实例作为原型来创建的。

那么就会有一个问题,如果方法本身包含了与该方法同名的方法,会发生什么情况呢?

以下是扩展实验2:

变量查询工具_js检查变量类型_检测变量数据类型

实验表明,当一个函数运行时,它会首先在本体中查找该函数。 如果找到,它将运行。 如果没有找到,则会搜索该函数。 或者可以理解为同名函数不会被克隆。

那么就会有一个新的问题:

如果我想使用实例调用对象方法怎么办?

答案是使用调用:

.=();

var =();

=();

..call();//显示::

..call(); 这里的意思是“调用它,调用它的对象方法”

好吧,这里有人可能会问,为什么不使用 ..call();

这就是对象方法和类方法的区别。 我们要调用的是对象方法

用例子来讨论这个问题

本文通过几个例子讲述了js中的一些基本概念。 首先我们回顾一下js语言的特点:除了对象什么都没有。 函数在js语言中被视为一种特殊的数据类型。 它们的特殊之处在于它们包含代码并且可以执行,但重点是它是一种数据类型,与数字、字符串等相同。

明白了这个,那么js语言中的全局作用域和函数作用域、全局变量和局部变量。 可以分为全局对象和非全局对象。 如果函数或其他数据类型不依赖于非全局变量,则默认会依赖全局变量,即作为全局对象的属性或方法,否则将被视为局部对象方法或属性。 this 用于指向属性和方法所基于的对象。 想通了这一点,判断这个就基本上没有问题了。

以下示例(点击查看)是第七个内容的示例。

检测变量数据类型_js检查变量类型_变量查询工具

上面的代码,倒数第三行和第四行代码并不难理解,但是倒数第一行代码如何理解呢? 首先我们看到全局对象中定义了jj,即jj是属性。 从jj的赋值我们知道jj是一个方法,jj()相当于.jj(),即调用函数的this指向全局对象。

以下代码是对网友提问的回复:

js检查变量类型_检测变量数据类型_变量查询工具

call和apply函数都可以改变this指针的指针,但是属性会被丢弃,通过例子不难验证。

call和apply的定义及应用

js检查变量类型_变量查询工具_检测变量数据类型

1. 方法定义

调用方法:

语法:call([[,arg1[,arg2[,[,.argN]]]]])

定义:调用一个对象的方法,将当前对象替换为另一个对象。

阐明:

call 方法可用于代表另一个对象调用方法。 call 方法将函数的对象上下文从原始上下文更改为指定的新对象。

如果未提供参数,则使用该对象。

应用方法:

语法:apply([[,]])

定义:应用一个对象的方法,将当前对象替换为另一个对象。

阐明:

如果不是有效的数组或不是对象,将导致 .

如果未提供任何参数,则将使用该对象并且不能传递任何参数。

例子:

变量查询工具_js检查变量类型_检测变量数据类型

检测变量数据类型_js检查变量类型_变量查询工具

js检查变量类型_变量查询工具_检测变量数据类型

从上面两个例子我们知道,当对象Aa方法调用call方法,并且B对象的实例b为调用的参数时,A方法被附加到b上,也就是说b拥有a方法对象A的。

现在:

A(){

这个.name="";

这。={

警报(这个名称);}

B(){

this.name=“lisi;”

var a=new A();

var b=new B();

a..call(b,","); //结果是窗口中弹出lisi;

当对象 A.call( B) 时,表示对象 A 替换了对象 B,相当于对象 B 是对象 A 的副本。对象 B 具有与对象 A 相同的属性和方法。 for...in 循环

for...in 语句循环访问对象的属性。

语法

对于(在)

代码为

注意:for...in 循环中的代码块将为每个属性执行一次。

例子

循环遍历对象的属性:

例子

var ={fname:"约翰",lname:"Doe",年龄:25};

对于 (x 中 )

txt=txt + [x];

标签: 对象 实例 全局

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码