假设我定义了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对象的解释。
有人能说出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 ???
在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]对象,
我听说会在JavaScript中添加一些ECMAScript类系统,我觉得这有点让人困惑,因为我刚刚读完了道格拉斯·克罗克福德( Douglas )的一本JS书“JavaScript”( The Good Parts ),他在书中解释说,缺少类根本不是坏事,只是不同而已。我相信我已经看到它解释说,与基于类的语言的任何相似之处,都只是为了减少那个时代或诸如此类的混乱,以帮助JS流行起来。
据我理解,JavaScript不应该有类,只是它们不是JS设计的一部分。ES6是从根本上改变了JS的功能,还是仅仅是语法上的糖分?
可能重复:
来自Java背景,我试图理解javascript。
如果这些是对的请告诉我。
就像在java中一样,有一个最高的对象,所有其他对象都继承它。
prototype属性类似于指向父对象(java中的类)的指针。
对于" object“对象,原型为null。
prototype属性值是表示对象命名的字符串,而不是C中的指针。指针概念是使用隐藏属性实现的,[PROTOTYPE]在脚本中是不可访问的。
我使用node.js而不是浏览器来学习JS。我试过了
var human = Object.create(null); // same as var
下面是我为理解Function.prototype而编写的示例JS代码
<script>
function Foo() {
}
Foo.prototype = {
a: 9
};
var x = new Foo();
var y = new Foo();
console.log('x : ' + x.a + '\n');
console.log('y : ' + y.a + '\n');
x.a = 1;
co
我试图更好地掌握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中找出这个错误,并且无法理解为什么会发生这种错误。程序应该从person对象继承属性,并添加两个附加属性,sID和courses。然后,for循环将用户输入的值(至少为5)推送到属性中。但是,我遇到的问题是,一旦它到达了courses属性(这是一个数组),我就会一直收到一个错误,说明课程是未定义的。任何帮助都是非常感谢的。
// person object
var person = { firstname: "", lastname: "", email: "" };
var student = {};
student.
据我所知,最新版本的JavaScript (ES6)现在支持创建类。我还理解在ES5和早期版本的JS中创建和使用对象的通常方法是创建对象原型。那么,使用类与下面这样的原型有什么区别,以及何时使用这两种方法?:
类方法:
class Car {
constructor(brand) {
this.carname = brand;
}
printStatement() {
return "I have a " + this.carname + ".";
}
}
mycar = new Car("Toyota");
我知道几种编程语言。其中大多数是脚本语言,如lua、perl、JS、ruby等。
但是最近,我开始用Java编程,它可以很安静地工作。所以我一直在想JS中存在的一种功能。建筑工人的原型,也就是。为了进一步理解我的问题是什么,我将在JS中做一个例子。假设您想要创建狗的应用程序。
function dog (){
this.property1 = value;
this.propertr2 = value2;
this.propertyN = valueN;
//etc.
}
//now, I will create several instances of the constructor in