添加函数时可以访问原型上下文

时间:2017-12-18 16:46:53

标签: javascript this prototype extend

我想在原型中添加一个函数来向库中添加一个功能。 我怎样才能访问"这个"原型的背景? 我举个例子来解释我的意思。

// file a

import * as utils from './utils'
import Validation from './b'

Validation.prototype.unique = function(url, params) {
  if (!utils.isEmptyString(url) && !utils.isEmptyObject(params) {
    // make api call for testing if unique
    this._messages.push('Unique'); // <= I would like to access to "this" context of Validation in file b.
  }
  return this;
}



// file b
import * as utils from './utils'

export function Validation() {
  this._messages = [];
  this._value = undefined;
  //...
}

Validation.prototype.required = function() {
  if (!utils.isEmpty(this._value)) {
    this._messages.push('Required);
  }
  return this;
}

1 个答案:

答案 0 :(得分:0)

您在方法中对this的使用与此完全相同。唯一需要修复的是不匹配的导入和导出语句。使用

// file a
import Validation from './b'
…

// file b
export default function Validation() {…}

// file a
import { Validation } from './b'
…

// file b
export function Validation() {…}