首页 > Web开发 > 详细

你不知道的JS系列 ( 31 ) - 对象属性( 属性和方法 )

时间:2020-03-19 09:58:28      阅读:44      评论:0      收藏:0      [点我收藏+]
如果访问的对象属性是一个函数,通常被称为‘方法’,把‘属性访问’说成了‘方法访问’。从技术角度来说,函数永远不会‘属于’一个对象,把对象内部引用的函数称为‘方法’似乎有些不妥。函数和对象的关系最多也只能说是间接关系

 

属性访问返回的函数和其他函数没有任何区别,除了可能发生的隐式绑定 this
function foo() {
  console.log(‘foo‘);
}
var someFoo = foo; // 对 foo 对变量引用
var myObject = {
  someFoo: foo
}
foo; // funciton foo() {...}
someFoo; // funciton foo() {...}
myObject.someFoo; // funciton foo() {...}

 

 

someFoo 和 myObject.someFoo 只是对于同一个函数对不同引用,并不能说明这个函数是特别的或者‘属于’某个对象。如果 foo() 定义时在内部有一个 this 引用,那这两个函数引用唯一区别就是 myObject.someFoo 中的 this 会被隐式绑定到一个对象。无论哪种引用形式都不能称之为‘方法’。

 

即使在对象的文字形式中声明一个函数表达式,这个函数也不会‘属于’这个对象
var myObject = {
  foo: function () {
    console.log(‘foo‘);
  }
}
var someFoo = myObject.foo;
someFoo; // funciton foo() {...}
myObject.someFoo; // funciton foo() {...}

 

你不知道的JS系列 ( 31 ) - 对象属性( 属性和方法 )

原文:https://www.cnblogs.com/wzndkj/p/12521844.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!