- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
var car = function(){
this.color = 'blue';
}
car.color1 = 'white';
car.prototype.color2 = 'red';
var toyota = new car();
console.log(car.color); // undefined
console.log(car.color1); // white
console.log(car.color2); // undefined
console.log(toyota.color); // blue
console.log(toyota.color1); // undefined
console.log(toyota.color2); // red
请您解释一下为什么其中 3 个在创建新对象之前和之后有不同的答案。
最佳答案
car
是一个函数:
var car = function(){
this.color = 'blue';
};
由于函数是一流的对象,您可以在它们上设置属性:
car.color1 = 'white';
这在某种程度上相当于面向对象语言中的静态属性。
函数也可以充当构造函数(当您使用 new
运算符调用它们时)。当他们这样做时,他们产生的实例继承自构造函数原型(prototype)。属性解析查看实例,然后继续查看原型(prototype)链,直到找到属性:
car.prototype.color2 = 'red'; // Property shared by instances of `car`
var toyota = new car(); // toyota is an instance of `car`
当您实例化 car
时,将调用构造函数并将实例的 color
属性设置为 'blue'
。
因此,例如:
color
属性时,它会在实例上找到。 color1
属性时,它并不存在(它是构造函数的静态属性)。 color2
属性时,它在实例上找不到,但在原型(prototype)上找到。对于函数本身:
color
属性时,它不存在(因为它只存在于实例中)color1
属性时,它被发现是因为您正在检查函数对象本身color2
属性时,它并不存在(因为它只存在于实例继承的原型(prototype)上)。关于javascript 区别(车内功能)this.color vs car.color1 vs car.prototype.color2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19153545/
(抱歉新手问题。)在 Ruby 中,循环之间的区别是什么: @cars.each do |car| 和 for car in @cars do ? 效率上有区别吗,或者为什么我们需要两种(或更多)方式
CREATE DATABASE movies_200186807; USE movies_200186807; CREATE TABLE movies_200186807 ( movie_name
在一本书中找到了第二种初始化对象的方法。现在很困惑。 最佳答案 这声明了一个变量: Car myCar; 该变量的类型为 Car,名为 myCar。但是,它还没有被初始化为任何东西。它是 Car 对象
我正在研究 Pandas 并研究汽车(一个 csv 文件)。我运行了以下命令: 1) cars.iloc[[3, 0]] Out[2]: cars_per_cap country dri
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Do the parentheses after the type name make a differen
除了明确的清晰度,我们为什么要坚持:car.getSpeed()和 car.setSpeed(55)当这也可以使用时:car.speed()和 car.speed(55) 我知道 get() 和 se
var car = function(){ this.color = 'blue'; } car.color1 = 'white'; car.prototype.color2 = 'red'; var
给定汽车列表 (List cars),我可以: Observable.just(cars); //returns an Observable that emits one List Observabl
我正在尝试将此 XML 反序列化为 Parts 对象: gearbox 1990
假设我有标题中描述的结构: Map> mapNeighborhood 包含分别由地址和车牌索引的邻域中的所有汽车。我想选择所有红色汽车将它们重新涂成黑色。为完成该任务,我尝试使用 Java 8 将两个
我在计划中的功能是尝试获取省的详细信息: (define (getProvincesHelper sales provincesList) (if (null? sales) prov
我相信我已经在程序中发现它是这个函数,但是在到达find_best_candidates函数的第一行之前似乎失败了: (define (count-the-score candList voterLi
我正在尝试创建利用 D-Bus 的程序。我研究了 Qt 提供的示例,大致相同。在其中一个名为“D-Bus 遥控汽车示例”的文件中,有一个名为“car.xml”的文件,其中包含以下内容:
我是 Java 新手。抱歉,这个时间太长了。下面是到目前为止我的代码的输出带有 ** 的部分是我遇到问题的地方。我应该比较两个 Car 对象的速度,但每个 Owner 对象要么是“安全”驾驶员,要么是
我想使用car::Anova运行ANCOVA,但无法找出是否有一种方法可以仅将协变量添加为主要效果(即,不应与任何事物交互)。 据我了解的ANCOVA,协变量只是添加到模型中的另一个主要效果(即另一个
我正在尝试在 RStudio 中制作一个 2 面板图。通常足够简单: par(mfrow=c(1,2)) #1*2 plotting window 但是,当我使用 scatterplot() 进行绘图
网上查了很久,不知道怎么申请car重新编码一系列列的值。 要重新编码单个列的值,我将运行如下命令: df$dv_r <- recode(df$dv, "2=1;1=0;0=NA") 然后,如果我想对
有人可以给我一个关于 car 和 cdr 的变体在Scheme中做什么的基本解释吗? 如果我是正确的,car 将返回列表中的第一项。 cdr 将返回一个不包括第一个元素的列表。 我对这些的其他变体感到
我想在eopl中使用typed/racket实现“LET”语言,但遇到问题:我尝试实现三个函数(empty-env、extend-env、apply-env),但我不知道如何标记类型信息,并且rack
我想在eopl中使用typed/racket实现“LET”语言,但遇到问题:我尝试实现三个函数(empty-env、extend-env、apply-env),但我不知道如何标记类型信息,并且rack
我是一名优秀的程序员,十分优秀!