我现在正在学习JS的继承,有些东西我不清楚。考虑以下代码:
function Mammal(pName){
var name = pName; //"private" variable name
this.getName = function(){ //return name via closure
return name;
}
this.mammalStuff = function(){
console.log("im a mammal!!");
}
}
Mammal.prototype.
我尝试这个函数来查看不同的对象之间是否有关系,所以我尝试了:
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();
我是JavaScript的新手,这些天我在用它做实验。我逐渐了解到JavaScript是基于原型的。我尝试执行以下代码:
var Person = function(name) {
this.name = name;
}
alert(Person.prototype);
var ram = new Person("Ram");
alert(ram.prototype);
正如预期的那样,第一个警报打印对象,对象,我希望第二个警报打印相同的,但它没有,为什么?
有谁能解释清楚吗?
我想在构造函数函数中覆盖一个成员函数,而不是整个构造函数函数,而是其中的一个成员函数,我的构造函数看起来像
function viewModel(){
var self= this;
self = {
testFuncA:function(){
console.log("you are in not overrided function test FuncA");
},
testFuncB:function(){
console.log("you are
似乎我不理解JavaScript中in关键字的含义。
看看下面的代码片段( ):
var x = [1,2]
for(i in x){
document.write(x[i]);
}
在jsfiddle中运行时,它不仅打印数组中包含的值,还打印数组对象的所有属性和方法。
当我像这样更改它时( ):
$(document).ready(function(){
var x = [1,2]
for(i in x){
document.write(x[i]);
}});
它只打印值1和2。
这一切为什么要发生?这是由jQuery引起的,还是in关键字的行为取决于文档是否完全加载?
我在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
我对javascript中的以下原型行为感到困惑。
function A(){
};
A.prototype.toString = function(){
console.log('first');
}
var a = new A(), b;
A.prototype = {
toString:function(){
console.log('second');
}
}
b = new A();
a.toString();
//outputs : first
b.t
对于下面的函数,我期望a和b有它们自己的数组版本,因此期望输出为false,但它会打印true。谁能解释一下,为什么?
function Test() {
var a = [1,2,3];
Test.prototype.getArray = function() { return a; };
}
var a = new Test();
var b = new Test();
console.log(a.getArray() === b.getArray());
我正在学习Javascript中的原型继承,并试图编写一个从子方法原型调用父方法的示例。然而,我并没有得到我所期望的结果。
Person.js
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greeting = function() {
console.log("Hello, My name is " + this.name + " and I am " + this.age + " years old.
假设我定义了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对象的解释。
我正在查看下面代码的层次结构(原型链),我不知道第二个(较低的对象)来自何处。我知道"t“变量是对象对象的实例,但是为什么第一个对象下面有另一个对象呢?我以为那个物体是链条上的最后一个环节。所以,我很困惑,因为这会打印测试=>对象=>对象
function test (){ }
var t = new test()
console.log(t)
澄清:使用Chrome浏览器
我试图更好地掌握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
我有一个函数,用于计算具有用户指定大小(维度)的向量的大小。
float VectorMagnitude(int vectorA[], int sizeVector)
{
float total = 0;
for (int i = 0; i < sizeVector; i++) {
total = total + (vectorA[i] * vectorA[i]);
}
total = sqrt(total);
return total;
}
如果我打印结果
printf("Magnitude of vector = %.2