我试图更好地掌握javascript类的内容和原因。具体来说,我试图理解将一个方法分配给一个原型和使用一个this.methodName =函数.构造函数中的语句。所以,我做了一个实验:
function CThis(){
this.method= function() {
console.log("method of ",this);
};
}
function CProto(){
}
CProto.prototype.method = function() {
console.log("method of ",this);
};
w
有人能说出js中的"this“关键字吗?我看了一些例子。有一点我不能理解。
A.B=function()
{
this.x(5); // this refers to prototype of A.B
}
A.B.prototype= {
x:function(p)
{ this.a(p); // this refers to prototype of A.B again
// but I expect that this refers to protoype of x ???
我正在学习js原型,我想知道下面两个部分之间是否有什么不同?
Segment1:
function SuperType(){
this.color=["blue","yellow"];
}
function SubType(){
}
Subtype.prototype = new SuperType();
Segment2
function SuperType(){
this.color=["blue","yellow"];
}
function SubType(){
SuperType
我现在学的都是prototype.js。有件事看起来很奇怪。例如,下面是我在firebug中运行的代码片段,url是,因为页面中有prototype.js。
var el2 = document.createElement('div');
var k=0;
for(var i in el2){ k++};
console.log(k);
结果是262,非常非常奇怪。因为如果在没有prototype.js的情况下在页面中运行相同的代码,结果是195。我的问题是prototype.js如何影响document.createElement方法。我在prototype.js中查询doc
我是第一次用揭示原型的模式编写javascript代码。我有麻烦了。当我调用add函数时,当用户单击add按钮时,它会在控制台中显示此错误。
Uncaught TypeError: Cannot call method 'add' of undefined
我该如何解决这个问题?
这是我的script.js代码
$(function () {
var todo = Todo('contents');
$('.addBtn').on('click', function() {
var name = $(this).pare
在这里学JS的乞丐。我不明白为什么当您声明一个变量时,它不会完全继承它的父类方法,例如:
// I initiate an array (my question is the same for all type of vars)
var myArr = ["foo", "bar"]
// Let's say I call a random function of the parent class Array
console.log(Array.isArray(myArr)); // true
// Since I assume that myArr
我想知道连接到本地类到底是如何在内部工作的。(找不到关于这个的任何文件)。
function NativeClass() { this.foo = "bar"; } class MyClass <NativeClass; end
它是否类似ES6或coffeescript的继承(从JS的角度来看)?
是否可以定义函数的方法,这些方法可以像常规函数那样调用(例如:
RubyClass``.prototype.foo =function(){返回RubyClass实例‘@accessor}) not the.$foo`。
还有一件事。如果Ruby类是从本机类继承的,那么在该函
我正在寻找以类似于Java类的方式编写面向对象的JavaScript (JS)代码的最佳方法。
工厂函数(FFs)看起来是在JS中提供类类功能的一种非常有希望的方法,到目前为止,我一直在这样构建它们:
function FF(constructorArg)
{
var _privateName = constructorArg;
var publicMessage = "Hello StackOverflow";
function publicMethodGetName() {
return _privateName;
}
ret
我正在通过JS的好的部分,并来到这个例子。在最后一行中,我尝试调用在sum函数的原型链中定义的方法。我搞不懂为什么这不起作用。
定义sum函数:
var sum = function(){
var i, sum=0;
for(i=0;i<arguments.length;i+=1){
sum += arguments[i];
}
return sum;
}
将方法方法添加到函数原型中
Function.prototype.method = function(name, func){
this.prototype.name = fun
我尝试了两种在JS中声明成员函数的方法:
function init() {
var name = "Mozilla";
function displayName() {
alert(name);
}
}
a = new init();
a.displayName()
和
function init() {
var name = "Mozilla";
displayName = function() {
alert(name);
}
}
a = new init();
a.displ
我想知道这个extend函数在Backbone.js中是如何工作的。请在内部帮助我它到底在做什么。
var extend = function(protoProps, staticProps) {
var parent = this;
var child;
// The constructor function for the new subclass is either defined by you
// (the "constructor" property in your `extend` definition), or defaulte