我是JavaScript OOP的新手.你能解释下面的代码块之间的区别吗?我测试了两个块都有效.什么是最佳实践,为什么?
第一块:
function Car(name){
this.Name = name;
}
Car.prototype.Drive = function(){
console.log("My name is " + this.Name + " and I'm driving.");
}
SuperCar.prototype = new Car();
SuperCar.prototype.constructor = SuperCar;
function SuperCar(name){
Car.call(this, name);
}
SuperCar.prototype.Fly = function(){
console.log("My name is " + this.Name + " and I'm flying!");
}
var myCar = new Car("Car");
myCar.Drive();
var mySuperCar = new SuperCar("SuperCar");
mySuperCar.Drive();
mySuperCar.Fly();Run Code Online (Sandbox Code Playgroud)
第二块:
function Car(name){
this.Name = name;
this.Drive = function(){
console.log("My name is " + this.Name + …Run Code Online (Sandbox Code Playgroud)javascript oop inheritance constructor prototype-programming
所以我试图让这个程序要求用户输入并将值存储在数组/列表中.
然后,当输入空行时,它将告诉用户这些值中有多少是唯一的.
我建立这是出于现实生活的原因而不是问题集.
enter: happy
enter: rofl
enter: happy
enter: mpg8
enter: Cpp
enter: Cpp
enter:
There are 4 unique words!
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
# ask for input
ipta = raw_input("Word: ")
# create list
uniquewords = []
counter = 0
uniquewords.append(ipta)
a = 0 # loop thingy
# while loop to ask for input and append in list
while ipta:
ipta = raw_input("Word: ")
new_words.append(input1)
counter = counter + 1
for p in uniquewords:
Run Code Online (Sandbox Code Playgroud)
..那就是我到目前为止所做的一切.
我不确定如何计算列表中唯一的单词数?
如果有人可以发布解决方案,以便我可以从中学习,或者至少告诉我它会如何变得更好,谢谢!
我有这个对象:
var data = {"id": 1, "second": "abcd"};
Run Code Online (Sandbox Code Playgroud)
这些是表格中的值.我将此传递给函数进行验证.
如果存在上述属性,我们可以使用data["id"]和获取它们的值data["second"],但有时,基于其他值,属性可以不同.
如何从data独立的属性名称中获取值?
我正在使用Mapbox GL JS v0.14.2并且我通过文档搜索了高低,并且很少有人清楚这一点.
如果您使用标准的JS API,那么使用他们提供的示例"非常适合使用贴图"(https://www.mapbox.com/mapbox.js/example/v1.0.0/fit-map-to - 标记/); 但是使用GL api时的设置是完全不同的.该GL API有getBounds()(https://www.mapbox.com/mapbox-gl-js/api/#Map.getBounds),而是因为你没有命名图层,像标准JS API,所以我挣扎找出如何使用getBounds().
我发现这个(Mapbox GL JS API Set Bounds)但肯定不是正确的答案?
这是我的大部分设置; 排除JSON设置和其他选项.
mapboxgl.accessToken = '<myaccesstoken>';
var markers = <?php echo $programme_json; ?>;
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/richgc/cikyo5bse00nqb0lxebkfn2bm',
center: [-1.470085, 53.381129],
zoom: 15
});
map.on('style.load', function() {
map.addSource('markers', {
'type': 'geojson',
'data': markers
});
map.addLayer({
"id": "markers",
"interactive": true,
"type": "symbol",
"source": "markers",
"layout": {
"icon-image": "venue-map-icon-blue",
'icon-size': 0.5, …Run Code Online (Sandbox Code Playgroud) reject()调用promise 回调后,Chrome控制台中会显示警告消息"Uncaught(in promise)".我不能围绕它背后的原因,也不知道如何摆脱它.
var p = new Promise((resolve, reject) => {
setTimeout(() => {
var isItFulfilled = false
isItFulfilled ? resolve('!Resolved') : reject('!Rejected')
}, 1000)
})
p.then(result => console.log(result))
p.catch(error => console.log(error))
Run Code Online (Sandbox Code Playgroud)
警告:

编辑:
我发现如果onRejected没有向.then(onResolved, onRejected)方法显式提供处理程序,JS将自动提供隐式处理程序.它看起来像这样:(err) => throw err.自动生成的处理程序将依次抛出.
参考:
如果IsCallable(onRejected)`为false,那么
让onRejected为" Thrower ".
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-performpromisethen
在 K&R(C 编程语言第 2 版)第 5 章中,我阅读了以下内容:
首先,在某些情况下可以比较指针。如果
p和q指向同一个数组的成员,则关系一样==,!=,<,>=,等正常工作。
这似乎意味着只能比较指向同一数组的指针。
但是,当我尝试此代码时
char t = 't';
char *pt = &t;
char x = 'x';
char *px = &x;
printf("%d\n", pt > px);
Run Code Online (Sandbox Code Playgroud)
1 被打印到屏幕上。
首先,我认为我会得到 undefined 或某种类型或错误,因为pt和px没有指向同一个数组(至少在我的理解中)。
也是pt > px因为两个指针都指向存储在栈上的变量,栈向下增长,所以内存地址t大于x?为什么pt > px是真的?
当 malloc 被引入时,我变得更加困惑。 同样在第 8.7 章的 K&R 中写到以下内容:
然而,仍然存在一种假设,即
sbrk可以有意义地比较指向由 返回的不同块的指针。仅允许在数组内进行指针比较的标准并不能保证这一点。因此,这个版本的malloc仅在一般指针比较有意义的机器之间是可移植的。
将指向堆上 malloced …
是否有一种简单的方法来配置JSON.NET,以便某些 DateTime字段将被没有时间格式化,其他DateTime字段仍将按时间格式化?
例:
{ firstName: 'John', lastName : 'Doe', birthday: '1965-09-23' }
Run Code Online (Sandbox Code Playgroud) 我目前正在使用“react-admin”开发一个管理面板,它在我的本地运行良好,但是一旦我将应用程序上传到 Heroku,构建就会失败并出现以下错误:“致命错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足”
我import { Admin } from 'react-admin';通过设置一个只有“react-admin”包和一个简单的 Admin 导入的干净项目来将问题缩小到最初的问题。一旦我尝试使用该组件,部署就会失败,并显示“堆内存不足”错误。
有没有其他人遇到过这个问题?
这是我的 package.json:
{
"name": "mrewards_admin",
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^0.19.0",
"deepmerge": "^4.2.2",
"prop-types": "^15.7.2",
"react": "^16.12.0",
"react-admin": "^3.0.2",
"react-dom": "^16.12.0",
"react-scripts": "3.2.0"
},
"engines": {
"node": "13.0.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [ …Run Code Online (Sandbox Code Playgroud) 我有一个绝对定位的div,我试图跟踪鼠标何时移动它以及鼠标何时离开.不幸的是,单击框中的文本偶尔会触发mouseleave事件.
演示:js小提琴
我怎么能阻止这个?
JS
let tooltip = document.createElement('div');
tooltip.innerHTML = 'HELLO WORLD';
tooltip.setAttribute('class', 'tooltip');
tooltip.style.display = 'none';
tooltip.onclick = evt => {
console.log('click')
evt.stopPropagation();
}
tooltip.ondblclick = evt => {
console.log('double click')
evt.stopPropagation();
}
tooltip.onmouseenter = () => {
console.log('tooltip mouse OVER');
}
tooltip.onmouseleave = () => {
console.log('tooltip mouse OUT')
}
tooltip.style.left = '290px';
tooltip.style.top = '50px';
tooltip.style.display = 'block';
document.body.appendChild(tooltip);
Run Code Online (Sandbox Code Playgroud)
HTML
<div style="width: 300px; height: 300px; background-color: lightblue">
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.tooltip {
position: absolute;
/*display: none;*/
left: …Run Code Online (Sandbox Code Playgroud) 我有两个数组list1,list2其中包含具有某些属性的对象; userId是Id还是唯一属性:
list1 = [
{ userId: 1234, userName: 'XYZ' },
{ userId: 1235, userName: 'ABC' },
{ userId: 1236, userName: 'IJKL' },
{ userId: 1237, userName: 'WXYZ' },
{ userId: 1238, userName: 'LMNO' }
]
list2 = [
{ userId: 1235, userName: 'ABC' },
{ userId: 1236, userName: 'IJKL' },
{ userId: 1252, userName: 'AAAA' }
]
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种简单的方法来执行以下三个操作:
list1 operation list2 应该返回元素的交集:
[
{ userId: 1235, userName: 'ABC' },
{ userId: 1236, userName: 'IJKL' …Run Code Online (Sandbox Code Playgroud)javascript arrays set-difference set-operations set-intersection
javascript ×6
arrays ×2
heap-memory ×2
json ×2
c ×1
catch-block ×1
constructor ×1
datetime ×1
dom ×1
es6-promise ×1
function ×1
heroku ×1
inheritance ×1
json.net ×1
loops ×1
mapbox ×1
memory ×1
mouseevent ×1
node.js ×1
object ×1
oop ×1
pointers ×1
promise ×1
python ×1
react-admin ×1
unique ×1
variables ×1