![](/img/trans.png)
[英]I can't seem to access a object's prototype method in Phaser with a custom tile object. What am I doing wrong?
[英]Why can't I access my custom string prototype from an object method?
我有一個自定義字符串原型,可以對字符串執行一些操作;
String.prototype.norm_to_ascii=function(){return unescape(encodeURIComponent(this))};
在我的示例中,我想要應用原型的字符串是位於 SampleObject object 之外的全局 object 屬性。 在我的實際代碼中,它會被這樣引用;
var userObject = {
name: "SomeName",
id: "SomeID"
}
除了在特定的 Object 方法中之外,它在我的項目(其他 js 文件)中的任何地方都有效;
var SampleObject = { //This is in it's own js file called sampleobject.js
test: 0,
doStringThings {
let something = userObject.id.norm_to_ascii() //RETURNS userObject.id.norm_to_ascii is not a function
}
}
例如,在 SampleObject 中,我需要使用 id,但我需要對 userObject 中的 id 值進行一些基本解碼,這正是字符串原型所做的。
我可以在其他地方使用這個字符串原型。 這是在 chrome 擴展中,所以我在服務工作者中定義了原型,它可以在彈出和內容頁面以及服務工作者中使用,所以它必須與 object 方法有關,但我不知道為什么? 誰能提供任何建議以將該原型公開給 object 方法而無需重新定義它?
編輯我的解釋應該更清楚。 我更新了上面的示例。
你忘了this
this.otherTestValue.norm_to_ascii()
在看到更新后的問題后,我的結論是您在運行它之后定義norm_to_ascii
function。
更改導入的順序應該可以解決問題。 您能否向我們展示項目的結構以及您在哪里導入帶有該原型的文件?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.