向对象添加方法
方法只不过是附加到对象的函数。
在构造函数中定义对象的方法:
(,,年龄,)
这.=;
这.=;
this.age=年龄;
这.=;
这.=; //对象的方法。
(姓名)
这.=名字;
var =new ("乔","多姆",50,"蓝色);
.(“杰克”);
。写(。);
显示的结果是:Jeck。
() 函数名称的值所赋给的属性。
种类
它是一种面向对象的语言,但不使用类。
在 中,不创建类,也不从类创建对象(与其他面向对象语言一样)。
基于,而不是基于阶级。
属性
1 原型设计模式
原型方法的主要思想是现在有一个类A,我想创建一个类B。这个类以A为原型,可以扩展。 我们将B的原型称为A。
2.方法可分为三类:
一个类方法
b 对象方法
c 原型方法
例子:
3 obj1.func.call(obj)方法
意思是把obj当成obj1,调用func方法
是什么意思?定义和用法
属性允许您向对象添加属性和方法
注意:它是一个全局属性,适用于所有对象。对象属性的解释是:返回对象类型原型的引用
语法
1. ..名称=值; //为新属性添加名称并赋值;
2.A..方法名称=(){}
例子:
输出是:
上面的代码实际上相当于:
3.A. =新B();
理解它不应该与继承相混淆。 A是B的实例,可以理解为A克隆了B中的所有方法和属性,A可以使用B的方法和属性。 这里强调的是克隆而不是继承。 可能会发生这种情况:A 是 B 的实例,B 也是 A 的实例。
我们先定义类,然后还要定义它,但是我们打算用一个实例作为原型,并且clone也包含这个对象方法。
。 = new()可以理解为:它是通过克隆一个实例作为原型来创建的。
那么就会有一个问题,如果方法本身包含了与该方法同名的方法,会发生什么情况呢?
以下是扩展实验2:
实验表明,当一个函数运行时,它会首先在本体中查找该函数。 如果找到,它将运行。 如果没有找到,则会搜索该函数。 或者可以理解为同名函数不会被克隆。
那么就会有一个新的问题:
如果我想使用实例调用对象方法怎么办?
答案是使用调用:
.=();
var =();
=();
..call();//显示::
..call(); 这里的意思是“调用它,调用它的对象方法”
好吧,这里有人可能会问,为什么不使用 ..call();
这就是对象方法和类方法的区别。 我们要调用的是对象方法
用例子来讨论这个问题
本文通过几个例子讲述了js中的一些基本概念。 首先我们回顾一下js语言的特点:除了对象什么都没有。 函数在js语言中被视为一种特殊的数据类型。 它们的特殊之处在于它们包含代码并且可以执行,但重点是它是一种数据类型,与数字、字符串等相同。
明白了这个,那么js语言中的全局作用域和函数作用域、全局变量和局部变量。 可以分为全局对象和非全局对象。 如果函数或其他数据类型不依赖于非全局变量,则默认会依赖全局变量,即作为全局对象的属性或方法,否则将被视为局部对象方法或属性。 this 用于指向属性和方法所基于的对象。 想通了这一点,判断这个就基本上没有问题了。
以下示例(点击查看)是第七个内容的示例。
上面的代码,倒数第三行和第四行代码并不难理解,但是倒数第一行代码如何理解呢? 首先我们看到全局对象中定义了jj,即jj是属性。 从jj的赋值我们知道jj是一个方法,jj()相当于.jj(),即调用函数的this指向全局对象。
以下代码是对网友提问的回复:
call和apply函数都可以改变this指针的指针,但是属性会被丢弃,通过例子不难验证。
call和apply的定义及应用
1. 方法定义
调用方法:
语法:call([[,arg1[,arg2[,[,.argN]]]]])
定义:调用一个对象的方法,将当前对象替换为另一个对象。
阐明:
call 方法可用于代表另一个对象调用方法。 call 方法将函数的对象上下文从原始上下文更改为指定的新对象。
如果未提供参数,则使用该对象。
应用方法:
语法:apply([[,]])
定义:应用一个对象的方法,将当前对象替换为另一个对象。
阐明:
如果不是有效的数组或不是对象,将导致 .
如果未提供任何参数,则将使用该对象并且不能传递任何参数。
例子:
从上面两个例子我们知道,当对象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];