【问题标题】:Is method a subset of a properties in javascript?方法是javascript中属性的子集吗?
【发布时间】:2017-10-02 02:08:50
【问题描述】:

在通过 JavaScript The Definitive Guide 学习 javascript 时,我看到了

当属性的值是函数时,我们称其为方法。

第一季度。方法是属性的子集吗?

A1。是的。


第二季度。当一个变量,比如字符串和数字(​​NOT Object)被声明时,它是从字符串还是数字对象继承属性?

A1。变量只是一个参考。

【问题讨论】:

  • 属性就是属性。属性的值,就像变量的值一样,可以是对对象的引用、数字、字符串、null,或对函数的引用(引用对象的特殊情况),或其他各种东西。

标签: javascript variables methods properties


【解决方案1】:

第一季度。方法是属性的子集吗?

是的。当属性的值是一个函数(或者,严格来说,一个函数的引用)时,它通常被称为对象的方法。它还推断应该调用该方法以将其 this 设置为对象:

var global = this;
var obj = {
  fn: function() {
    console.log('this is ' + (this == obj ? 'obj' :
      this == global? 'global' : this)
     );
  }
};

// Call as method of obj
obj.fn();

// Call as plain function
var f = obj.fn;
f();

第二季度。当变量,如字符串和数字(​​不是对象)被声明时,它是否从字符串、数字对象继承属性?

变量没有类型,它们的值有。声明一个变量只是将它创建为相关上下文中的引用(注意var 的行为与letconst 不同)。

看起来一个变量有一个类型,但它是具有该类型的值:

var a;
console.log('a is : ' + typeof a); // undefined
a = "A";
console.log('a is : ' + typeof a); // string
a = 5;
console.log('a is : ' + typeof a); // number

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 2016-01-09
    • 1970-01-01
    • 2016-08-08
    • 2013-05-27
    相关资源
    最近更新 更多