2017-04-26 56 views
0

在Nativescript中有沒有任何方法可以在Object.prototype上使用defineProperty?我試圖定義方法「IsObject」,但是,當我添加函數時,應用程序崩潰。NativeScript中的DefineProperty對象

功能是:

Object.defineProperty(Object.prototype, "IsObject", { 
     value: function() 
     { 
      let obj: Object = this; 
      return obj !== null && typeof obj === 'object'; 
     } 
    }); 
+0

忽略你試圖在NativeScript中這樣做的事實,你爲什麼要定義一個對象方法,然後用它來報告它是不是' t null,並且是類型對象...我會重新思考這種功能的必要性 – pkanev

+0

@pkanev我不打算與您討論爲什麼,因爲我試圖將webapp遷移到nativescript,有時候會有很多問題,你可以做的(尤其是當代碼不是'你''我'),但你是對的,這是沒有道理的。 忽略它,因爲我有很多其他的方法,如「是」,「ToArray」......來遷移。你能回到主要問題嗎? –

回答

1

我只是測試這在Android上;並且沒有添加代碼的問題。我做了一些小的改變:

Object.defineProperty(Object.prototype, "isObject", { 
     value: function() 
     { 
      var obj = this; 
      return obj !== null && typeof obj === 'object'; 
     } 
}); 

// To Test, I put in a tap handler 
var x = {}; console.log("IsObject?:", x.isObject()); 

我小的isObject(因爲這是正確的格式的項目)。 我也刪除了不需要的TS特定的代碼;不需要使TS編譯器對此函數做任何事情...

P.S.我與彼得,修改對象原型可能是危險的...

相關問題