假设我定义了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 ???
可能重复:
来自Java背景,我试图理解javascript。
如果这些是对的请告诉我。
就像在java中一样,有一个最高的对象,所有其他对象都继承它。
prototype属性类似于指向父对象(java中的类)的指针。
对于" object“对象,原型为null。
prototype属性值是表示对象命名的字符串,而不是C中的指针。指针概念是使用隐藏属性实现的,[PROTOTYPE]在脚本中是不可访问的。
我使用node.js而不是浏览器来学习JS。我试过了
var human = Object.create(null); // same as var
我试图更好地掌握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.
我试图理解C,通过阅读K&R,我很难理解这本书中的两个函数的代码:
void qsort(int v[], int left, int right){
int i, last;
void swap(int v[], int i, int j);
if (left >= right)
return;
swap(v, left, (left+right)/2);
last = left;
for ( i = left+1; i<=right; i++)
if (v[i]<v[left])
swap(v,++last, i);
s
我的英语不太好,但我试着解释清楚我自己。我刚开始学习JS对象,偶然发现了我无法理解的问题。
我有一个简单的对象
var cars = {
doors: 4,
wheels: 4
}
当我试图创建这样一个对象时:
var Opel = new car()
我发现了一个错误Uncaught TypeError: object is not a function
当我这样做的时候:
Opel = Object.create(cars)
一切都很顺利。
当我写一个像这样的对象:
function cars() {}
一种用new声明对象的方法,可以正确工作。我不明白这两种类型的对象
类构造函数中的函数与类内的方法(js中的构造函数)有什么区别?
我试图寻找这个,但没有找到什么可以理解的我!
提前感谢!
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
/* this function within the constructor what is it’s difference
from the method(1) below */
withinFunction = function () {
给定简单的JS继承,这两个示例的基本函数有什么实际区别?换句话说,什么时候一个人应该选择在"this“上定义一个函数,而不是在原型上(或者反过来)?
对我来说,第二个例子更容易理解,但这还能有多少呢?
在此定义的函数:
//base
var _base = function () {
this.baseFunction = function () {
console.log("Hello from base function");
}
};
//inherit from base
function _ctor() {
this.p
就在我认为我理解js对象的时候,他们向我抛出了一些新的东西。
在这段代码中(fiddle:)
var impl = function () {
var P = function () {};
P.prototype = {};
return P;
},
P = impl();
p = new P();
console.log(p.constructor === P);
当我添加一个原型时,检查构造函数上的相等性返回false,但是如果删除添加原型的行,那么它将返回true。通过P.prototype.prop =
我想知道以下两个代码段之间的区别
我理解的是,这是静态的,因为如果不使用新关键字创建实例,就可以调用getCookie和setCookie函数。
var CookieHandler = function () {};
CookieHandler.getCookie = function (key) {
};
CookieHandler.setCookie = function (key, value) {
};
这是一个例子。在这种情况下,您需要创建一个实例来调用函数。
var CookieHandler = function () {};
CookieHandler.prototyp
我很难理解PrototypeJS多个类实例。
下面是我的代码示例:
var Test = Class.create();
Test.prototype = {
settings: {
a: {},
b: {},
},
initialize: function(options) {
this.settings.c = options.c;
}
};
var a = new Test({c: 1});
console.log(a.settings);
var b = new Test({c: 2});
console.log(a.settings)