2013-04-13 3 views
2
내가 예를 들어, LocalStore에 함수의 인스턴스를 저장해야

:LocalStorage에 함수 인스턴스를 저장하는 방법은 무엇입니까?

function boo() { 
    //blah blah 
} 
var instance = new boo(); //I need to store this variable 

가 어떻게 로컬 저장에 instance 변수를 저장할 수 있습니까?

편집 :

가정하자 난 그냥 모든 브라우저의 탭에 대한 싱글처럼, 모든 브라우저의 탭/창에서 기능의 같은 인스턴스를 공유 할 필요가있다.

+0

귀하의 질문에 함수가 어떤 상태를 가지고 있음을 의미합니다. 모듈 패턴이나 프로토 타입 상속을 사용하고 있습니까? 결과 객체를 JSON으로 serialize 한 다음 localStorage에 배치해야합니다. – sciritai

+0

인스턴스는 저장소에 대해 직렬화 가능해야하며 인스턴스를 다시 구성 할 수 있도록 직렬화 할 수 있어야합니다. – Joseph

+0

@JosephtheDreamer 모든 브라우저의 탭/창에서 동일한 함수 인스턴스를 공유해야한다고 가정합니다. –

답변

0

의 전체를 저장할 위치를 은 그래서 당신은 state 일부를 몇 가지 별도의 변수에 컨텍스트를 저장하거나 컨텍스트의 기능 독립을 저장해야합니다 불필요합니다. 함수는 데이터의 인스턴스가 아닌 정적 코드이며 서버에서 브라우저로 전달되어야합니다.

또한 localStorage는 도메인별로 분리되어 있으므로 사용자의 브라우저에 기능을 주입 한 다음 다른 웹 사이트에서 기능을 호출하는 것이 목표라면 불가능합니다. 필요한 것은 브라우저 플러그인을 만들어 여러 상점에 제출하는 것입니다.

페이지 당 Javascript env도 탭간에 공유되지 않습니다.

-4

당신이 할 수있는 일은

var instance = this["boo"]; 

이이 기능을 절약 할 수 있지만, 문맥을 떠날 것입니다.

가 함수 자체를 저장하려고하면 상황에 맞는

var context = JSON.stringify(this); 
now when you retrive it then just use eval 
var context = eval(context); 

instance.cal(context); 
+0

사실 인스턴스 코드가 아니라 함수 코드입니다. 모든 브라우저의 탭/창에서 동일한 함수 인스턴스를 공유해야한다고 가정합니다. –

+0

컨텍스트 또는 컨텍스트 자체의 상태를 저장한다고 말한 것입니다. 어떤 변수에 –

+0

컨텍스트 상태를 저장하는 예제를 추가 할 수 있습니까? –

관련 문제