1.2、什么是函数?什么是方法

1.2、什么是函数?什么是方法

在javascript中,函数和方法的区分 有助于理解js执行上下文关系,基于原型的继承方式。

什么是函数

通过function或字面量定义的function类型的变量 我们称之为函数。

function f(){};
或var f = function(){
}
console.log(typeof f); //function
复制代码
什么方法

方法是一种特殊的函数。 如果一个对象的某个属性指向的是一个函数,站在该对象的角度上说,那么就把这个函数称之为它的一个方法。

function f(){
}
var obj = {
    p:f
}
或
var obj = {
    p:function(){
    }
}
这种情况定义的函数我们称之为方法

复制代码
函数和方法区别

函数当前普通函数调用时,执行上下文(this)指向的时全局对象window;而方法的执行上下文指向的是该方法所属的对象。

function f(){
    return this;
}
console.log(f() === window); //true 说明执行上下文直接指向的是window

var obj = {
    p:function(){
        return this;
    }
}
console.log(obj.p() === obj); //true //说明执行上下文指向的是所属的对象

那么大家思考一下以下的执行结果
var obj = {
    p:function(){
        return this;
    }
}

var exp = obj.p;
console.log(exp() === obj); //?
console.log(exp() === window); //?

复制代码
小结

函数 执行上下文指向全局对象window 方法 执行上下文指向该方法所属的对象

转载于:https://juejin.im/post/5c1b431f6fb9a049be5d7280

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值