var
myObject
=
{
firstName
:
"
John
"
,
lastName
:
"
Doe
"
,
fullName
:
function
(
)
{
return
this
.
firstName
+
"
"
+
this
.
lastName
;
myObject
.
fullName
(
)
;
尝试一下 »
fullName
方法是一个函数。函数属于对象。
myObject
是函数的所有者。
this
对象,拥有 JavaScript 代码。实例中
this
的值为
myObject
对象。
测试以下!修改
fullName
方法并返回
this
值:
var
myObject
=
{
firstName
:
"
John
"
,
lastName
:
"
Doe
"
,
fullName
:
function
(
)
{
return
this
;
myObject
.
fullName
(
)
;
尝试一下 »
尝试一下 »
在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。
call()
和
apply()
是预定义的函数方法。
两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。
function
myFunction
(
a
,
b
)
{
return
a
*
b
;
myObject
=
myFunction
.
call
(
myObject
,
10
,
2
)
;
尝试一下 »
function
myFunction
(
a
,
b
)
{
return
a
*
b
;
myArray
=
[
10
,
2
]
;
myObject
=
myFunction
.
apply
(
myObject
,
myArray
)
;
尝试一下 »
两个方法都使用了对象本身作为第一个参数。
两者的区别在于第二个参数:
apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。
在 JavaScript 严格模式(strict mode)下, 在调用函数时第一个参数会成为
this
的值, 即使该参数不是一个对象。
在 JavaScript 非严格模式(non-strict mode)下, 如果第一个参数的值是 null 或 undefined, 它将使用全局对象替代。