ClojureScript

时间:2019-05-28 08:03:39

标签: javascript object clojurescript

我需要将此Javascript代码转换为ClojureScript。我在使用this关键字时遇到了麻烦。

这是我的JS:

if (!String.prototype.startsWith) {
  String.prototype.startsWith = function(searchString, position) {
    position = position || 0;
    return this.indexOf(searchString, position) === position;
  };
}

在高级模式下,Google Closure编译器出现Object doesn't support property or method 'startsWith'错误,因此我需要添加此代码。 (IE 11)

2 个答案:

答案 0 :(得分:5)

ClojureScript已经具有clojure.string/starts-with?

$ clj -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "RELEASE"}}}' -m cljs.main -re node
ClojureScript 1.10.520
cljs.user=> (require '[clojure.string :as str])
nil
cljs.user=> (str/starts-with? "foobar" "foo")
true

re-find也可以帮助您找到它。

答案 1 :(得分:1)

尝试以下ClojureScript代码:

(when (not (.. js/String -prototype -startsWith))
  (set!
    (.. js/String -prototype -startsWith)
    (fn [searchString position]
      (set! position (or position 0))
      (= (this-as this (.indexOf this) searchString position) position))))