以 var.function() 格式调用函数

Call a function in the format var.function()

我对调用函数的方式很感兴趣。

例如,本机函数 scrollIntoView() 可以像 el.scrollIntoView() 一样调用 el 作为函数中的参数。

我想知道我是否可以创建类似的东西。
此行为是为本机函数保留的,还是您可以自己编写代码?

谢谢!

它只是一个你访问属性的对象,它是最基本的语法

const el = {
  param: "My function trigger",
  myFunction() {
    console.log(this.param);
  }
}

el.myFunction();

您所说的创建的元素都是继承基础class Element 的classes 的实例。因此,它们共享相同的接口部分,并且它们具有相似的可调用方法,例如:

class el {
  constructor(param){
    this.param=param;
  }
  myFunction() {
    console.log(this.param);
  }
}

const el1 = new el("My function param 1");
const el2 = new el("My function param 2");
el1.myFunction();
el2.myFunction();

您可以扩展 Element 原型,但由于潜在的冲突,扩展本机对象通常不是一个好的做法

Element.prototype.foo = function() {
  // do something the the element which is `this`
  console.log('id:', this.id)
}

document.querySelector('div').foo()
<div id="1">Some content</div>