假设我定义了2个构造函数和一个成员函数
function A() {}
function B() {}
A.prototype.a = function(){}
我已经实例化了一个B。如何强制转换使其成为A
o = new B();
//What should I put here?
o.a();
我是js的新手。我有一种感觉,上面提到的o是A还是B仅仅是由对prototype的引用控制的。因此,我觉得类型转换应该是可能的。
欢迎回答,以及能帮助我理解js对象的解释。
我试图更好地掌握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
我现在学的都是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
我读过。它只指出了当第一个参数是一个原型时的场景。但是,我在Node.js中看到了这样的代码:
var events = require('events');
var emitter = new events.EventEmitter();
var a = Object.create(emitter);
那么,当第一个参数是对象时,Object.create()会做什么呢?
可能重复:
来自Java背景,我试图理解javascript。
如果这些是对的请告诉我。
就像在java中一样,有一个最高的对象,所有其他对象都继承它。
prototype属性类似于指向父对象(java中的类)的指针。
对于" object“对象,原型为null。
prototype属性值是表示对象命名的字符串,而不是C中的指针。指针概念是使用隐藏属性实现的,[PROTOTYPE]在脚本中是不可访问的。
我使用node.js而不是浏览器来学习JS。我试过了
var human = Object.create(null); // same as var
我尝试这个函数来查看不同的对象之间是否有关系,所以我尝试了:
var o={name:'abc'};
var o2=o;
console.log(o.isPrototypeOf(o2));
console.log(o2.isPrototypeOf(o));
嗯,上面印了两个假字。我感到奇怪的是," prototype“是每个函数/对象的属性/函数,那么JS如何判断一个对象是否是另一个对象的原型?
我也试过:
var Person=function(){
name='abc',
age=30
};
var o1=new Person();
我在Angular.js模块中有一个对象声明:
$scope.test=function(){
};
$scope.test.prototype.push = function(data) {
return data;
};
我这样叫它:
var a = $scope.test.push(1);
console.error(a);
但我知道这个错误:
Error: undefined is not a function (evaluating '$scope.test.push(1)')
为什么我不能访问我通过Prototyp
在inherits方法下的backbone.js中,作者这样做:
var ctor = function() {};
// some other code ...
var child;
// some other code ...
ctor.prototype = parent.prototype;
child.prototype = new ctor();
据我所知,上面所说的是允许新对象继承父对象的原型链。我试图理解这一点,但是在实践中,上面的方法和直接分配原型之间有区别吗?
child.prototype = parent.prototype
我知道存在这个[prototype]对象,
我使用的是jQuery、jQuery mobile、prototype和photoswipe的组合。我意识到由于$快捷方式的使用,jQuery和prototype之间存在冲突。所以我做了一个jQuery.noConflict()。现在,在我的Firebug控制台中,它不再报告任何错误。但是,当我转到Firebug DOM标记时,我看到:
当我检查4725行时,它是var $continue = new Error('"throw $continue" is deprecated, use "return" instead');。这就是我在使用j
我正在学习一些JS,我希望有人能用简单的术语向我解释Object.getPrototypeOf()与.prototype之间的区别。
function ParentClass() {}
function ChildClass() {}
ChildClass.prototype = new ParentClass();
var mychild = new ChildClass();
var myparent = new ParentClass();
# .getPrototypeOf
Object.getPrototypeOf(ChildClass.prototype) // Pa