2015-01-31 50 views
0

請考慮以下JavaScript庫中的代碼;如何在不實例化的情況下獲取註冊的Web組件的原型

document.registerElement('my-component', { prototype: { foo: true }}); 

它似乎registerElement返回一個函數,可以用作構造函數。

以後如何獲取此功能的參考?

var tempDom = document.createElement('my-component') 
console.log(tempDom.__proto__) 

似乎工作,但它需要先創建一個實例。

回答

0

我想你只需要將registerElement()的返回值保存在一個變量中,然後再使用該變量。如果你不保存回報,那麼我相信它會丟失。

// Save the return in a variable 
var mycomp = document.registerElement('my-component'); 

// Use the var to create the element 
document.body.appendChild(new mycomp()); 

// Then you can do things with the new tag 
var mytag = document.getElementsByTagName("my-component")[0]; 
mytag.textContent = "I am a my-component element."; 
+0

謝謝。這似乎是合理的。 – TTx 2015-02-17 20:01:46

0

prototype方法會給你預期的結果。

var mc = document.registerElement(
    'my-component', { prototype: { foo: true }} 
); 
console.log(mc.prototype); 
//⇒ my-component {foo: true} 

希望它有幫助。

+0

謝謝,但後來怎麼樣?元素註冊是在一個單獨的js庫中完成的,所以我沒有機會使用mc。 – TTx 2015-01-31 19:48:58

+0

匿名函數是在第三方庫的某處定義的,你想知道你是否可以訪問它?你會具體化你正在努力實現的目標嗎? – mudasobwa 2015-01-31 20:06:26

+0

document.registerElement函數註冊元素並將返回的函數存儲在某處。我想學習如何獲得對返回函數的引用。 – TTx 2015-01-31 21:15:28

相關問題