utopic目標:docstringを有効にするためにjavascript関数自体のインスタンスを取得します。出来ますか?
str = "hello"
str.doc = "this is a string"
console.log(str) //prints 'hello'
console.log(str.doc) //should prints the docstring
ただし、文字列は不変であり、これ以上のことはできません。私は回避しようとした方法
:
str = new String("hello")
str.doc = "this is a string"
console.log(str) //prints the string object but not 'hello'
console.log(""+str) //prints "hello"
console.log(str.doc) //correctly prints the docstring
あなたが見ることができるように.valueOf()または.toString()が呼び出されたときにのみ、あなたは生の文字列を取得します。目標は、直接呼び出したときに文字列を取得することです。
回避策のもう一つの誘惑(息切れのためcoffescriptで、3行対〜15)
class Configuration
constructor: (@value, @doc) ->
@::valueOf = -> @value
これはnew String()
にかなり似ています。オブジェクトのvalueOf()
メソッドのプロトタイプを作成するだけです。問題は上記と同じです。
が、それは私の全体のコードベースをリファクタリングする必要がなくて、これを達成するためにいくつかの方法で可能です:あなたは直接生の文字列を出力し、両方console.log(str.doc)
質問を使用することはできませんか?
これは非常に興味深い質問です。ユースケースは何ですか? – woozyking
角度アプリの設定については、私は後でどこでも使うことができるよりも、(バックエンドのURLのような)公開環境変数を、env固有のファイルに格納して、シングルトンで定義します。 –
これらの文字列の使い方の例を共有できますか?すべての実用的な目的のため、 'new String()'はあなたの問題を解決するはずです。 – gurvinder372