請教各位前輩要如何宣告一個所有物件都可用的方法,但又不會有後遺症呢?
小弟我的敘述能力不好,請多多包涵我遇到的狀況是
首先我是在寫opera瀏覽器的userJS遇到的
我不確定這個問題是只有在opera才有,還是因為我的作法才有我用Object.prototype.abc=function(){}宣告了一個abc的方法
但我發現一旦使用apply或是call,"abc"這個方法就會被自動執行
或是一些有使用到JQuery的函式也會造成abc自動執行
或是遍歷for(i in window)時,"abc"會被列為其中
是我漏掉了什麼嗎?有沒有辦法宣告一個所有物件都可用的方法
但不會造成這種問題呢?

解决方案 »

  1.   

    你没漏掉什么 
    但是去扩展  Object.prototype 是件相当恐怖的事情  还是不要这么做吧。
      

  2.   

    typeof window == 'object' 所以window也属于Object 也符合原型链
    另外我简单测试了下 IE貌似虽然window属于object 但是不继承object还有 apply调用我也测试过了 并没有引发 你说的问题 你可以在检查或者调试下代码
      

  3.   

    感謝兩位to KK3K2005大我想我應該可以確定是opera處理JS的問題了
    因為我的寫法也很簡單,但它就是會觸發....那有沒有辦法模仿JQuery做一個類,賦予這個類一個方法
    但是這個"類"要任何物件都可以接受,有辦法做到嗎?
    若可以的話可以指點我一下嗎?
    感謝!