扩展一个函数并对其进行实例化-javascript
Extending a function and instantiating it - javascript
-
你好,SO,今天我带着一个谦虚的问题来到你面前,因为我显然错过了一些相当基本的东西。
我正在尝试,但我不明白为什么它不起作用,来"扩展"一个函数。
具体而言,请考虑以下代码:console.log中的变量似乎已经丢失,即使它们已经定义。
然而,这似乎不是实现我想要实现的目标的正确方式。
要求:`用变量和方法扩展函数,以便该函数的所有新实例都将接收这些变量。您可以考虑的"类变量">
Super = function (){}; //yes it's global.
Super.prototype.alert = function()
{
console.log('alert function');
}
ExtendSuper = function(arguments) //yes it's global
{
**EDIT , THIS IS THE ANSWER THANKS TO YURY**
return function () {
return new Super(arguments);
}
}
arguments = {} //some object with variables and functions
ExtendedFunction = ExtendSuper(arguments); //yes it's global
success = new ExtendedFunction();//yes, it's global
EDIT:OP在某种程度上改变了问题,使代码示例变得无关紧要。对他来说太好了!
实际上,你对继承有一些奇怪的想法。我建议你在为时已晚之前重新考虑一下你的申请您确实需要原型,因为它们是javascript的重要组成部分。
不管怎样http://jsfiddle.net/uj4ag/
var DomDom = (function(){ //Do not need a function? Use IEFE
function View(bootstrap) //my "view" class
{ var view = this;
view.$elm = false; view.model = false;
view.render = function()
{
console.log('rendering something');
}
$.extend(view,bootstrap);
};
return {
View: View,
extend: {
View: function(params) {//Let's create a new function :)
return function() { //it is not an inheritance it is 'currying'
return new View(params);
}
}
}
}
}());
var SubClass = DomDom.extend.View({
foobar : true,
alert : function () { alert('hi')},
render : function() { console.log('rendering something else')},
});
var viewInst = new DomDom.View;
var subClassInst = new SubClass();
viewInst.render();
subClassInst.render();
相关文章:
- 我应该如何用javascript实例化这个日期
- JavaScript 中的动态实例化
- 在 JavaScript 中,当我们实例化派生对象时,原型的函数隐藏在哪里
- 如何理解“当类实例化时,JavaScript静态方法也是不可调用的”
- 需要帮助理解如何在javascript中定义静态类和可实例化类
- 用javascript动态实例化类
- 实例化一个javascript对象并在一行中填充其属性
- 无法在javascript中实例化typescript类
- bootstrap选择javascript实例化不创建对象
- 用javascript在实例方法中实例化对象
- 使用自定义原型实例化JavaScript函数
- JavaScript中的动态实例化[Classname as String]
- 使用 javascript 进行 OOP 编程:确保无论对象如何实例化,这都指向正确的事物
- Javascript prototypíng 和实例化对象的“this”
- Javascript中最快的类/对象访问/实例化是什么
- 为什么可以'我在Rhino上使用JavaScript实例化了TestCase的一个子类
- 不会扰乱eslint的javascript实例化模式
- 闭包中的Javascript实例化.如何使工厂和模型独立
- Javascript:实例化对象数组的最佳方式
- Javascript - 实例化其属性已被修改的对象